1 # Try to identify the current development source version.
2 set(CMake_VERSION_SOURCE "")
3 if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
4 find_program(GIT_EXECUTABLE NAMES git git.cmd)
5 mark_as_advanced(GIT_EXECUTABLE)
8 COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD
10 OUTPUT_STRIP_TRAILING_WHITESPACE
11 WORKING_DIRECTORY ${CMake_SOURCE_DIR}
14 set(CMake_VERSION_SOURCE "g${head}")
16 COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
17 WORKING_DIRECTORY ${CMake_SOURCE_DIR}
20 COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
22 OUTPUT_STRIP_TRAILING_WHITESPACE
23 WORKING_DIRECTORY ${CMake_SOURCE_DIR}
26 set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
30 elseif(EXISTS ${CMake_SOURCE_DIR}/CVS/Repository)
31 file(READ ${CMake_SOURCE_DIR}/CVS/Repository repo)
33 if("${repo}" MATCHES "\\.git/")
34 string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
36 set(CMake_VERSION_SOURCE "cvs${branch}")