From 431508aab10f6c51b07cd44aac65e7482ed039d4 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Mon, 9 Sep 2024 23:49:03 -0400 Subject: [PATCH] cmake: handle the scenario of a commit having more than 1 tag (#3662) --- common/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 69c86b521..46dc0cfea 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()