浏览代码

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.
Andrew Udvare 4 年之前
父节点
当前提交
caf38725ae
共有 2 个文件被更改,包括 14 次插入3 次删除
  1. 9 3
      CMakeModules/GenerateSCMRev.cmake
  2. 5 0
      src/common/CMakeLists.txt

+ 9 - 3
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

+ 5 - 0
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