mirror of
https://github.com/reactos/CMake.git
synced 2024-12-12 13:56:00 +00:00
0328379411
For builds from Git repositories, add "-g<commit>" to the end of the version number. If the source tree is modified, append "-dirty". For builds from CVS checkouts, add "-cvs-<branch>".
38 lines
1.2 KiB
CMake
38 lines
1.2 KiB
CMake
# Try to identify the current development source version.
|
|
set(CMake_VERSION_SOURCE "")
|
|
if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
|
|
find_program(GIT_EXECUTABLE NAMES git git.cmd)
|
|
mark_as_advanced(GIT_EXECUTABLE)
|
|
if(GIT_EXECUTABLE)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD
|
|
OUTPUT_VARIABLE head
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${CMake_SOURCE_DIR}
|
|
)
|
|
if(head)
|
|
set(CMake_VERSION_SOURCE "g${head}")
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
|
|
WORKING_DIRECTORY ${CMake_SOURCE_DIR}
|
|
)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
|
|
OUTPUT_VARIABLE dirty
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${CMake_SOURCE_DIR}
|
|
)
|
|
if(dirty)
|
|
set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
elseif(EXISTS ${CMake_SOURCE_DIR}/CVS/Repository)
|
|
file(READ ${CMake_SOURCE_DIR}/CVS/Repository repo)
|
|
set(branch "")
|
|
if("${repo}" MATCHES "\\.git/")
|
|
string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
|
|
endif()
|
|
set(CMake_VERSION_SOURCE "cvs${branch}")
|
|
endif()
|