mirror of
https://github.com/reactos/CMake.git
synced 2024-12-14 15:19:39 +00:00
d2059d2511
Use a uint64_t to store encoded version numbers so we have plenty of bits available. Encode with room for up to 1000 minor releases between major releases and to encode dates until the year 10000 in the patch level. This is necessary because CMake development versions prior to release 2.8.0 used the date in the patch level, and this practice may be restored after the 3.0 release.
45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef cmVersion_h
|
|
#define cmVersion_h
|
|
|
|
#include "cmStandardIncludes.h"
|
|
|
|
/** \class cmVersion
|
|
* \brief Helper class for providing CMake and CTest version information.
|
|
*
|
|
* Finds all version related information.
|
|
*/
|
|
class cmVersion
|
|
{
|
|
public:
|
|
/**
|
|
* Return major and minor version numbers for cmake.
|
|
*/
|
|
static unsigned int GetMajorVersion();
|
|
static unsigned int GetMinorVersion();
|
|
static unsigned int GetPatchVersion();
|
|
static unsigned int GetTweakVersion();
|
|
static const char* GetCMakeVersion();
|
|
};
|
|
|
|
/* Encode with room for up to 1000 minor releases between major releases
|
|
and to encode dates until the year 10000 in the patch level. */
|
|
#define CMake_VERSION_ENCODE__BASE cmIML_INT_UINT64_C(100000000)
|
|
#define CMake_VERSION_ENCODE(major, minor, patch) \
|
|
((((major) * 1000u) * CMake_VERSION_ENCODE__BASE) + \
|
|
(((minor) % 1000u) * CMake_VERSION_ENCODE__BASE) + \
|
|
(((patch) % CMake_VERSION_ENCODE__BASE)))
|
|
|
|
#endif
|
|
|