Skip to content

Commit bb7a6cb

Browse files
ruevsphkahler
authored andcommitted
Revert "CMake: use git rev-parse to get GIT_COMMIT_HASH"
This reverts commit f1e47e6. Since unfortunately it breaks the addition of the git commit hash to the version string when building from the VisualStudio IDE. I presume this happens because `git` is not of the "path" of the build environment. The version string ends up "3.0~" only.
1 parent f1e47e6 commit bb7a6cb

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

cmake/GetGitCommitHash.cmake

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
11
function(get_git_commit_hash)
2-
execute_process(COMMAND git rev-parse --git-dir OUTPUT_VARIABLE GIT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
3-
execute_process(COMMAND git rev-parse HEAD OUTPUT_VARIABLE HEAD_REF OUTPUT_STRIP_TRAILING_WHITESPACE)
2+
get_filename_component(GIT_DESCRIBE_CMAKE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
3+
get_filename_component(GIT_ROOT ${GIT_DESCRIBE_CMAKE_DIR} PATH)
4+
set(GIT_DIR "${GIT_ROOT}/.git")
45

56
# Add a CMake configure dependency to the currently checked out revision.
67
set(GIT_DEPENDS ${GIT_DIR}/HEAD)
8+
file(READ ${GIT_DIR}/HEAD HEAD_REF)
9+
if(HEAD_REF MATCHES "ref: (.+)\n")
10+
set(HEAD_REF ${CMAKE_MATCH_1})
11+
if(EXISTS "${GIT_DIR}/${HEAD_REF}")
12+
list(APPEND GIT_DEPENDS ${GIT_DIR}/${HEAD_REF})
13+
file(READ ${GIT_DIR}/${HEAD_REF} HEAD_REF)
14+
elseif(EXISTS "${GIT_DIR}/packed-refs")
15+
list(APPEND GIT_DEPENDS ${GIT_DIR}/packed-refs)
16+
file(READ "${GIT_DIR}/packed-refs" PACKED_REFS)
17+
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
18+
set(HEAD_REF ${CMAKE_MATCH_1})
19+
else()
20+
set(HEAD_REF "")
21+
endif()
22+
else()
23+
set(HEAD_REF "")
24+
endif()
25+
endif()
726
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${GIT_DEPENDS})
827

28+
string(STRIP ${HEAD_REF} HEAD_REF)
929
if(HEAD_REF STREQUAL "")
1030
message(WARNING "Cannot determine git HEAD")
1131
else()

0 commit comments

Comments
 (0)