diff options
| author | V10lator <v10lator@myway.de> | 2025-07-17 20:28:50 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-17 12:28:50 -0600 |
| commit | c215623224d015ab73da5166634feff00a8adc74 (patch) | |
| tree | 1b918b7642bc4e5a5b88627a799f6b26bee049cb /CMakeLists.txt | |
| parent | 4868fadcb94ac1c6b9752925eb73bbcbcf3803c3 (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.txt | 30 |
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() |
