diff options
author | Aina Niemetz <aina.niemetz@gmail.com> | 2018-09-24 12:21:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-24 12:21:14 -0700 |
commit | 81740fe7b76fea687695aee486e10f23fa62089f (patch) | |
tree | 09474aaa2b212a81b135a8844d8f1e4c3ee4b656 /src | |
parent | 7bfcbebe0f7db7d336cae04ccdfdc3c2b1aff69b (diff) |
cmake: Fix and simplify git version info. (#2516)
Diffstat (limited to 'src')
-rw-r--r-- | src/base/CMakeLists.txt | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt index d190ec199..c29eaa393 100644 --- a/src/base/CMakeLists.txt +++ b/src/base/CMakeLists.txt @@ -1,26 +1,38 @@ #-----------------------------------------------------------------------------# # Extract info from Git for git_versioninfo.cpp -include(GetGitRevisionDescription) -get_git_head_revision(GIT_REFSPEC GIT_SHA1) - -if(GIT_SHA1) - git_local_changes(GIT_IS_DIRTY) - set(GIT_BUILD "true") - if(${GIT_IS_DIRTY} STREQUAL "DIRTY") - set(GIT_IS_DIRTY "true") - else() - set(GIT_IS_DIRTY "false") - endif() +find_package(Git) + +set(GIT_BUILD "false") +set(GIT_IS_DIRTY "false") +set(GIT_SHA1 "") +set(GIT_BRANCH "") + +if(GIT_FOUND) + # Get current git branch, result is != 0 if this is not a git repository execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + RESULT_VARIABLE GIT_RESULT OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) -else() - set(GIT_BUILD "false") - set(GIT_IS_DIRTY "false") - set(GIT_SHA1 "") + if("${GIT_RESULT}" STREQUAL "0") + set(GIT_BUILD "true") + # Extract sha1 of HEAD + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse HEAD + OUTPUT_VARIABLE GIT_SHA1 + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + # Result is != 0 if worktree is dirty + execute_process( + COMMAND git diff --quiet + RESULT_VARIABLE GIT_RESULT + ) + if(NOT "${GIT_RESULT}" STREQUAL "0") + set(GIT_IS_DIRTY "true") + endif() + endif() endif() #-----------------------------------------------------------------------------# |