Fix version string in case of incomplete git history or other errors (#459)

Signed-off-by: Thomas Rohloff <v10lator@myway.de>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
This commit is contained in:
V10lator
2025-07-17 20:28:50 +02:00
committed by GitHub
parent 4868fadcb9
commit c215623224
+23 -7
View File
@@ -17,14 +17,28 @@ execute_process(
OUTPUT_VARIABLE PROJECT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REPLACE "-" ";" PROJECT_VERSION_LIST "${PROJECT_VERSION}")
list(GET PROJECT_VERSION_LIST 0 PROJECT_VERSION_PATCH)
string(REPLACE "." ";" PROJECT_VERSION_LIST "${PROJECT_VERSION_PATCH}")
list(LENGTH PROJECT_VERSION_LIST PROJECT_VERSION_LIST_LENGTH)
if (${PROJECT_VERSION_LIST_LENGTH} LESS 3)
set(PROJECT_VERSION_PATCH 0)
if (DEFINED PROJECT_VERSION AND NOT "${PROJECT_VERSION}" STREQUAL "")
string(REPLACE "-" ";" PROJECT_VERSION_LIST "${PROJECT_VERSION}")
list(GET PROJECT_VERSION_LIST 0 PROJECT_VERSION_PATCH)
string(REPLACE "." ";" PROJECT_VERSION_LIST "${PROJECT_VERSION_PATCH}")
list(LENGTH PROJECT_VERSION_LIST PROJECT_VERSION_LIST_LENGTH)
if (${PROJECT_VERSION_LIST_LENGTH} LESS 3)
set(PROJECT_VERSION_PATCH 0)
else()
list(GET PROJECT_VERSION_LIST 2 PROJECT_VERSION_PATCH)
endif()
else()
list(GET PROJECT_VERSION_LIST 2 PROJECT_VERSION_PATCH)
set(PROJECT_VERSION "Unknown")
execute_process(
COMMAND git log --pretty=format:%h -1
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_VERSION_PATCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (DEFINED PROJECT_VERSION_PATCH AND NOT "${PROJECT_VERSION_PATCH}" STREQUAL "")
set(PROJECT_VERSION "${PROJECT_VERSION}-${PROJECT_VERSION_PATCH}")
endif()
set(PROJECT_VERSION_PATCH 0)
endif()
# Get the patch version number from the project version
@@ -36,6 +50,8 @@ list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD)
set(PROJECT_BUILD_NAME "Alfredo ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE)
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
message("Spaghetti Kart version: ${PROJECT_VERSION} Alfredo ${PROJECT_PATCH_WORD}")
if(APPLE)
enable_language(OBJCXX)
endif()