aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Kaijser <martijn@xbmc.org>2018-02-24 09:31:40 +0100
committerGitHub <noreply@github.com>2018-02-24 09:31:40 +0100
commit2129ff474fe9ff7cb15afe09ab7909a72e0787c2 (patch)
tree16910b1d9ce9583ca5a4b17bd591ad18d183360e
parent3f5038e71d238dae6682e86b0839764d6f719e45 (diff)
parentb4af7a2df458eda49e2d24bea532b5a14221fc27 (diff)
Merge pull request #13577 from hudokkow/fix_git_sha_length_detection
[cmake] Fix build stamp generation
-rw-r--r--cmake/scripts/common/Macros.cmake21
1 files changed, 11 insertions, 10 deletions
diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake
index c0d421cdb9..c21069d9cd 100644
--- a/cmake/scripts/common/Macros.cmake
+++ b/cmake/scripts/common/Macros.cmake
@@ -634,6 +634,7 @@ function(core_find_git_rev stamp)
else()
find_package(Git)
if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
+ # get tree status i.e. clean working tree vs dirty (uncommited or unstashed changes, etc.)
execute_process(COMMAND ${GIT_EXECUTABLE} update-index --ignore-submodules -q --refresh
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
execute_process(COMMAND ${GIT_EXECUTABLE} diff-files --ignore-submodules --quiet --
@@ -644,21 +645,21 @@ function(core_find_git_rev stamp)
RESULT_VARIABLE status_code
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endif()
+ # get HEAD commit SHA-1
+ execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h" HEAD
+ OUTPUT_VARIABLE HASH
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+ string(REPLACE "\"" "" HASH ${HASH})
+
if(status_code)
- execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h-dirty" HEAD
- OUTPUT_VARIABLE HASH
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
- string(SUBSTRING ${HASH} 1 13 HASH)
- else()
- execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h" HEAD
- OUTPUT_VARIABLE HASH
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
- string(SUBSTRING ${HASH} 1 7 HASH)
+ string(CONCAT HASH ${HASH} "-dirty")
endif()
+
+ # get HEAD commit date
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:"%cd" --date=short HEAD
OUTPUT_VARIABLE DATE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
- string(SUBSTRING ${DATE} 1 10 DATE)
+ string(REPLACE "\"" "" DATE ${DATE})
string(REPLACE "-" "" DATE ${DATE})
else()
string(TIMESTAMP DATE "%Y%m%d" UTC)