1
0
Эх сурвалжийг харах

Make CMake version dirty state available to code

Set `CMake_VERSION_IS_DIRTY` to 1 or 0 depending on whether the CMake
source tree is considered dirty or not.
Tobias Hunger 9 жил өмнө
parent
commit
af0e1cd4cb

+ 4 - 0
Source/CMakeVersionCompute.cmake

@@ -3,6 +3,7 @@ include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake)
 
 
 # Releases define a small patch level.
 # Releases define a small patch level.
 if("${CMake_VERSION_PATCH}" VERSION_LESS 20000000)
 if("${CMake_VERSION_PATCH}" VERSION_LESS 20000000)
+  set(CMake_VERSION_IS_DIRTY 0)
   set(CMake_VERSION_IS_RELEASE 1)
   set(CMake_VERSION_IS_RELEASE 1)
   set(CMake_VERSION_SOURCE "")
   set(CMake_VERSION_SOURCE "")
 else()
 else()
@@ -22,3 +23,6 @@ endif()
 if(CMake_VERSION_SUFFIX)
 if(CMake_VERSION_SUFFIX)
   set(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SUFFIX})
   set(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SUFFIX})
 endif()
 endif()
+if(CMake_VERSION_IS_DIRTY)
+  set(CMake_VERSION ${CMake_VERSION}-dirty)
+endif()

+ 3 - 1
Source/CMakeVersionSource.cmake

@@ -23,7 +23,9 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
         WORKING_DIRECTORY ${CMake_SOURCE_DIR}
         WORKING_DIRECTORY ${CMake_SOURCE_DIR}
         )
         )
       if(dirty)
       if(dirty)
-        set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
+        set(CMake_VERSION_IS_DIRTY 1)
+      else()
+        set(CMake_VERSION_IS_DIRTY 0)
       endif()
       endif()
     endif()
     endif()
   endif()
   endif()

+ 1 - 0
Source/cmVersionConfig.h.in

@@ -13,4 +13,5 @@
 #define CMake_VERSION_MINOR @CMake_VERSION_MINOR@
 #define CMake_VERSION_MINOR @CMake_VERSION_MINOR@
 #define CMake_VERSION_PATCH @CMake_VERSION_PATCH@
 #define CMake_VERSION_PATCH @CMake_VERSION_PATCH@
 #define CMake_VERSION_SUFFIX "@CMake_VERSION_SUFFIX@"
 #define CMake_VERSION_SUFFIX "@CMake_VERSION_SUFFIX@"
+#define CMake_VERSION_IS_DIRTY @CMake_VERSION_IS_DIRTY@
 #define CMake_VERSION "@CMake_VERSION@"
 #define CMake_VERSION "@CMake_VERSION@"