| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file Copyright.txt or https://cmake.org/licensing for details. */ | |
| #pragma once | |
| #include <cm3p/kwiml/int.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 KWIML_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))) |