diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 69c86b5216..46dc0cfeaf 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -15,6 +15,13 @@ function(write_revision_h) OUTPUT_VARIABLE GIT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET) + # To support being on a commit with mutiple tags + if(${GIT_TAG} MATCHES "\n") + string(REPLACE "\n" ";" GIT_TAG_LIST "${GIT_TAG}") + list(LENGTH GIT_TAG_LIST GIT_TAG_LIST_LENGTH) + math(EXPR GIT_TAG_LAST_INDEX "${GIT_TAG_LIST_LENGTH} - 1") + list(GET GIT_TAG_LIST ${GIT_TAG_LAST_INDEX} GIT_TAG) + endif() endif() file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/versions/revision.h "#define BUILT_TAG \"${GIT_TAG}\"\n#define BUILT_SHA \"${GIT_SHORT_SHA}\"\n") endfunction()