summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorJustin Goshi <jgoshi@microsoft.com>2017-12-01 19:44:00 (GMT)
committerJustin Goshi <jgoshi@microsoft.com>2017-12-04 18:49:39 (GMT)
commitf92304c789336f1d5e01a596ea024525c1a2b8f7 (patch)
tree4a3ae002754190ee2b90765683999679dfc4f502 /Source
parenta4faf8638744edf7e3dd8931b55ba87e8f7738be (diff)
downloadCMake-f92304c789336f1d5e01a596ea024525c1a2b8f7.zip
CMake-f92304c789336f1d5e01a596ea024525c1a2b8f7.tar.gz
CMake-f92304c789336f1d5e01a596ea024525c1a2b8f7.tar.bz2
CMakeVersion RC file: Split patch into 2 components
The binary file version has 4 16-bit components. In cases where the patch component is too large (ex: represents a build date yyyymmdd) we split it into two parts.
Diffstat (limited to 'Source')
-rw-r--r--Source/CMakeVersion.rc.in8
-rw-r--r--Source/CMakeVersionCompute.cmake10
2 files changed, 14 insertions, 4 deletions
diff --git a/Source/CMakeVersion.rc.in b/Source/CMakeVersion.rc.in
index 60e14e5..22b4a36 100644
--- a/Source/CMakeVersion.rc.in
+++ b/Source/CMakeVersion.rc.in
@@ -1,11 +1,11 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#define VER_FILEVERSION @CMake_VERSION_MAJOR@,@CMake_VERSION_MINOR@,@CMake_VERSION_PATCH@
-#define VER_FILEVERSION_STR "@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@.@CMake_VERSION_PATCH@\0"
+#define VER_FILEVERSION @CMake_RCVERSION@
+#define VER_FILEVERSION_STR "@CMake_RCVERSION_STR@\0"
-#define VER_PRODUCTVERSION @CMake_VERSION_MAJOR@,@CMake_VERSION_MINOR@,@CMake_VERSION_PATCH@
-#define VER_PRODUCTVERSION_STR "@CMake_VERSION@\0"
+#define VER_PRODUCTVERSION @CMake_RCVERSION@
+#define VER_PRODUCTVERSION_STR "@CMake_RCVERSION_STR@\0"
/* Version-information resource identifier. */
#define VS_VERSION_INFO 1
diff --git a/Source/CMakeVersionCompute.cmake b/Source/CMakeVersionCompute.cmake
index d9218d7..79264ed 100644
--- a/Source/CMakeVersionCompute.cmake
+++ b/Source/CMakeVersionCompute.cmake
@@ -27,3 +27,13 @@ endif()
if(CMake_VERSION_IS_DIRTY)
set(CMake_VERSION ${CMake_VERSION}-dirty)
endif()
+
+# Compute the binary version that appears in the RC file. Version
+# components in the RC file are 16-bit integers so we may have to
+# split the patch component.
+if(CMake_VERSION_PATCH MATCHES "^([0-9]+)([0-9][0-9][0-9][0-9])$")
+ set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMAKE_MATCH_1},${CMAKE_MATCH_2})
+else()
+ set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_VERSION_PATCH})
+endif()
+set(CMake_RCVERSION_STR ${CMake_VERSION})