summaryrefslogtreecommitdiff
path: root/cmake/GetVersion.cmake
blob: 8e918658bec0b8efb462c8fe50191beaf69e53d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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}")