summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorV10lator <v10lator@myway.de>2025-07-17 20:28:50 +0200
committerGitHub <noreply@github.com>2025-07-17 12:28:50 -0600
commitc215623224d015ab73da5166634feff00a8adc74 (patch)
tree1b918b7642bc4e5a5b88627a799f6b26bee049cb /CMakeLists.txt
parent4868fadcb94ac1c6b9752925eb73bbcbcf3803c3 (diff)
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>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt30
1 files changed, 23 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2c62337c2..0861b55b0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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()