From caf38725ae2802bdc71ea45c40c34635c5090dca Mon Sep 17 00:00:00 2001
From: Andrew Udvare <audvare@gmail.com>
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 43ca730ece..c7da2b91d6 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 919da4a53e..790193b003 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