diff options
author | Brad King <brad.king@kitware.com> | 2010-04-23 14:01:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2010-04-23 14:01:49 (GMT) |
commit | 0328379411386abc89ba07991f858cdacca926b2 (patch) | |
tree | 72dd2d12ced1daa4f2dc1b182089c934e01fdb34 /Source/CMakeVersionSource.cmake | |
parent | e49b6eca4f5857bcf7bfc08e34d0797a3400bcf2 (diff) | |
download | CMake-0328379411386abc89ba07991f858cdacca926b2.zip CMake-0328379411386abc89ba07991f858cdacca926b2.tar.gz CMake-0328379411386abc89ba07991f858cdacca926b2.tar.bz2 |
Report commit hash in CMake development versions
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>".
Diffstat (limited to 'Source/CMakeVersionSource.cmake')
-rw-r--r-- | Source/CMakeVersionSource.cmake | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Source/CMakeVersionSource.cmake b/Source/CMakeVersionSource.cmake new file mode 100644 index 0000000..05e265c --- /dev/null +++ b/Source/CMakeVersionSource.cmake @@ -0,0 +1,37 @@ +# 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() |