summaryrefslogtreecommitdiff
path: root/cmake/GetVersion.cmake
diff options
context:
space:
mode:
authorcoco875 <59367621+coco875@users.noreply.github.com>2026-07-23 02:02:58 +0200
committerGitHub <noreply@github.com>2026-07-22 18:02:58 -0600
commit4c24ae2bc2294c96a81d296a68b6d404f34358e7 (patch)
tree0a4d1fb0e353e1b14755d1a2c8d2fcc4d4c29b70 /cmake/GetVersion.cmake
parent022e0737d598e93429355db66c07be39e974926f (diff)
Refactor cmake (#721)
* some start of refactor * Update SetFlags.cmake * Update SetCmakeVar.cmake * Update SetFlags.cmake * Fix error int-convertion * more refactor * clean up include and source file * fix link of lib * fix a warning * fix include in src/actors * fix include in src/debug * fix include in src/ending * fix include in src/engine/actors * fix include in src/engine/cameras * fix include in src/engine/editor * fix include in src/engine/objects * fix include in src/engine/tracks * fix include in src/port/ui * fix include in src/racing * fix include in src/engine/vehicles * fix include in subfolder of src/engine * fix include in src/engine * fix include in src/enhancements * fix include in src * fix switch * invert common and findlib * Update SetFlags.cmake * clean up some workflow * some splification * Update build.sh * Update Game.h * add header back * Delete test_check.cmake * continue * Update common.cmake
Diffstat (limited to 'cmake/GetVersion.cmake')
-rw-r--r--cmake/GetVersion.cmake48
1 files changed, 48 insertions, 0 deletions
diff --git a/cmake/GetVersion.cmake b/cmake/GetVersion.cmake
new file mode 100644
index 000000000..8e918658b
--- /dev/null
+++ b/cmake/GetVersion.cmake
@@ -0,0 +1,48 @@
+execute_process(
+ COMMAND git -c safe.directory=${CMAKE_SOURCE_DIR} describe --tags
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE PROJECT_VERSION
+ RESULT_VARIABLE GIT_DESCRIBE_RESULT
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(GIT_DESCRIBE_RESULT EQUAL 0 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()
+ set(PROJECT_VERSION "Unknown")
+ execute_process(
+ COMMAND git -c safe.directory=${CMAKE_SOURCE_DIR} log --pretty=format:%h -1
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE PROJECT_VERSION_PATCH
+ ERROR_QUIET
+ 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()
+
+set(NATO_PHONETIC_ALPHABET
+ "Alfa" "Bravo" "Charlie" "Delta" "Echo" "Foxtrot" "Golf" "Hotel"
+ "India" "Juliett" "Kilo" "Lima" "Mike" "November" "Oscar" "Papa"
+ "Quebec" "Romeo" "Sierra" "Tango" "Uniform" "Victor" "Whiskey"
+ "Xray" "Yankee" "Zulu")
+list(LENGTH NATO_PHONETIC_ALPHABET NATO_WORD_COUNT)
+math(EXPR PATCH_INDEX "${PROJECT_VERSION_PATCH} % ${NATO_WORD_COUNT}")
+list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD)
+
+set(PROJECT_BUILD_NAME
+ "Bolognese ${PROJECT_PATCH_WORD}"
+ CACHE STRING "" FORCE)
+set(PROJECT_TEAM "SpaghettiKart Team - HarbourMasters")
+
+message("Spaghetti Kart version: ${PROJECT_VERSION} ${PROJECT_PATCH_WORD}")