From 55c34ecbd7cfe4ee76a4105b3715d24b9eb18dfe Mon Sep 17 00:00:00 2001 From: Lukas Werling Date: Wed, 3 Oct 2018 12:10:12 +0200 Subject: [PATCH] Add git branch to C4Version.h The branch information is necessary for upcoming automatically-updating snapshots. For Travis, cmake will also pick up the branch name from the C4REVISION_BRANCH environment variable. --- .travis.yml | 1 + cmake/GitGetChangesetID.cmake | 15 +++++++++++++++ src/C4Version.h.in | 1 + 3 files changed, 17 insertions(+) diff --git a/.travis.yml b/.travis.yml index b4185f1b0..07802644a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,6 +56,7 @@ install: before_script: - export CXX="$CXXCOMPILER" CC="$CCOMPILER" + - export C4REVISION_BRANCH="$TRAVIS_BRANCH" - > cmake -G"${BSYS/\#*/}" diff --git a/cmake/GitGetChangesetID.cmake b/cmake/GitGetChangesetID.cmake index 7c8f6c4e9..77ca3ac4c 100644 --- a/cmake/GitGetChangesetID.cmake +++ b/cmake/GitGetChangesetID.cmake @@ -42,6 +42,19 @@ function(git_get_changeset_id VAR) OUTPUT_VARIABLE GIT_TIMESTAMP OUTPUT_STRIP_TRAILING_WHITESPACE ) + if(DEFINED ENV{C4REVISION_BRANCH}) + set(GIT_BRANCH "$ENV{C4REVISION_BRANCH}") + else() + execute_process(WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND "${GIT_EXECUTABLE}" "symbolic-ref" "--short" "HEAD" + RESULT_VARIABLE GIT_RESULT + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(NOT GIT_RESULT EQUAL 0) + set(GIT_BRANCH "unknown") + endif() + endif() endif() endif() if (NOT C4REVISION) @@ -64,6 +77,7 @@ function(git_get_changeset_id VAR) REGEX "date: .+" ) string(SUBSTRING "${C4REVISION_TS}" 6 -1 GIT_TIMESTAMP) + set(GIT_BRANCH "unknown") endif() if(WORKDIR_DIRTY) set(WORKDIR_DIRTY 1) @@ -71,4 +85,5 @@ function(git_get_changeset_id VAR) set(${VAR} "${C4REVISION}" PARENT_SCOPE) set(${VAR}_DIRTY ${WORKDIR_DIRTY} PARENT_SCOPE) set(${VAR}_TS "${GIT_TIMESTAMP}" PARENT_SCOPE) + set(${VAR}_BRANCH "${GIT_BRANCH}" PARENT_SCOPE) endfunction() diff --git a/src/C4Version.h.in b/src/C4Version.h.in index 57efb0f5b..4ed85d560 100644 --- a/src/C4Version.h.in +++ b/src/C4Version.h.in @@ -40,6 +40,7 @@ #define C4REVISION "@C4REVISION@" #define C4REVISION_TS "@C4REVISION_TS@" #endif +#define C4REVISION_BRANCH "@C4REVISION_BRANCH@" // Build Options #ifdef _DEBUG