summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorAina Niemetz <aina.niemetz@gmail.com>2018-09-24 12:21:14 -0700
committerGitHub <noreply@github.com>2018-09-24 12:21:14 -0700
commit81740fe7b76fea687695aee486e10f23fa62089f (patch)
tree09474aaa2b212a81b135a8844d8f1e4c3ee4b656 /src/base
parent7bfcbebe0f7db7d336cae04ccdfdc3c2b1aff69b (diff)
cmake: Fix and simplify git version info. (#2516)
Diffstat (limited to 'src/base')
-rw-r--r--src/base/CMakeLists.txt42
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()
#-----------------------------------------------------------------------------#
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback