From f92304c789336f1d5e01a596ea024525c1a2b8f7 Mon Sep 17 00:00:00 2001 From: Justin Goshi Date: Fri, 1 Dec 2017 11:44:00 -0800 Subject: 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. --- Source/CMakeVersion.rc.in | 8 ++++---- Source/CMakeVersionCompute.cmake | 10 ++++++++++ 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}) -- cgit v0.12