summaryrefslogtreecommitdiffstats
path: root/Source/cmVersion.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmVersion.h')
-rw-r--r--Source/cmVersion.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/Source/cmVersion.h b/Source/cmVersion.h
new file mode 100644
index 0000000..e77ec99
--- /dev/null
+++ b/Source/cmVersion.h
@@ -0,0 +1,34 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmVersion_h
+#define cmVersion_h
+
+#include <cm_kwiml.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)))
+
+#endif