From caf38725ae2802bdc71ea45c40c34635c5090dca Mon Sep 17 00:00:00 2001 From: Andrew Udvare Date: Mon, 20 Dec 2021 19:13:07 -0500 Subject: [PATCH] Allow overriding SCM version info If the build is from a non-repository, these functions will return empty. This patch allows using defines to CMake to set version info such as -DGIT_BRANCH=master. --- CMakeModules/GenerateSCMRev.cmake | 12 +++++++++--- src/common/CMakeLists.txt | 5 +++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CMakeModules/GenerateSCMRev.cmake b/CMakeModules/GenerateSCMRev.cmake index 43ca730ec..c7da2b91d 100644 --- a/CMakeModules/GenerateSCMRev.cmake +++ b/CMakeModules/GenerateSCMRev.cmake @@ -11,9 +11,15 @@ find_package(Git QUIET PATHS "${GIT_EXECUTABLE}") # generate git/build information include(GetGitRevisionDescription) -get_git_head_revision(GIT_REF_SPEC GIT_REV) -git_describe(GIT_DESC --always --long --dirty) -git_branch_name(GIT_BRANCH) +if(NOT GIT_REF_SPEC) + get_git_head_revision(GIT_REF_SPEC GIT_REV) +endif() +if(NOT GIT_DESC) + git_describe(GIT_DESC --always --long --dirty) +endif() +if (NOT GIT_BRANCH) + git_branch_name(GIT_BRANCH) +endif() get_timestamp(BUILD_DATE) # Generate cpp with Git revision from template diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 919da4a53..790193b00 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -22,6 +22,11 @@ add_custom_command(OUTPUT scm_rev.cpp -DTITLE_BAR_FORMAT_RUNNING=${TITLE_BAR_FORMAT_RUNNING} -DBUILD_TAG=${BUILD_TAG} -DBUILD_ID=${DISPLAY_VERSION} + -DGIT_REF_SPEC=${GIT_REF_SPEC} + -DGIT_REV=${GIT_REV} + -DGIT_DESC=${GIT_DESC} + -DGIT_BRANCH=${GIT_BRANCH} + -DBUILD_FULLNAME=${BUILD_FULLNAME} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_SOURCE_DIR}/CMakeModules/GenerateSCMRev.cmake DEPENDS