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.
This commit is contained in:
Tobias Hunger 2016-07-08 11:40:16 +02:00 committed by Brad King
parent 6a077b5d63
commit af0e1cd4cb
3 changed files with 8 additions and 1 deletions

View File

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

View File

@ -23,7 +23,9 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
WORKING_DIRECTORY ${CMake_SOURCE_DIR}
)
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()

View File

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