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