forked from TheXTech/TheXTech
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathversion.cmake
73 lines (57 loc) · 3.18 KB
/
version.cmake
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Major
set(THEXTECH_VERSION_1 1)
# Minor
set(THEXTECH_VERSION_2 3)
# Revision
set(THEXTECH_VERSION_3 8)
# Patch
set(THEXTECH_VERSION_4 0)
# Type of version: "-alpha","-beta","-dev", or "" aka "release"
set(THEXTECH_VERSION_REL "-dev")
# Static version values for F-Droid to parse (PLEASE KEEP IT IN SYNC WITH VERSION NUMBER PARTS FROM ABOVE)
set(THEXTECH_ANDROID_VERSION_NAME "1.3.8-dev")
set(THEXTECH_ANDROID_VERSION_CODE "1030800")
# Defining global macros
add_definitions(-DTHEXTECH_VERSION_1=${THEXTECH_VERSION_1})
add_definitions(-DTHEXTECH_VERSION_2=${THEXTECH_VERSION_2})
add_definitions(-DTHEXTECH_VERSION_3=${THEXTECH_VERSION_3})
add_definitions(-DTHEXTECH_VERSION_4=${THEXTECH_VERSION_4})
add_definitions(-DTHEXTECH_VERSION_REL=${THEXTECH_VERSION_REL})
# Buildin the version name
set(THEXTECH_VERSION_STRING "${THEXTECH_VERSION_1}.${THEXTECH_VERSION_2}")
if(NOT ${THEXTECH_VERSION_3} EQUAL 0 OR NOT ${THEXTECH_VERSION_4} EQUAL 0)
string(CONCAT THEXTECH_VERSION_STRING "${THEXTECH_VERSION_STRING}" ".${THEXTECH_VERSION_3}")
endif()
if(NOT ${THEXTECH_VERSION_4} EQUAL 0)
string(CONCAT THEXTECH_VERSION_STRING "${THEXTECH_VERSION_STRING}" ".${THEXTECH_VERSION_4}")
endif()
if(NOT "${THEXTECH_VERSION_REL}" STREQUAL "")
string(CONCAT THEXTECH_VERSION_STRING "${THEXTECH_VERSION_STRING}" "${THEXTECH_VERSION_REL}")
endif()
# Haiku-specific version name
if(HAIKU)
set(THEXTECH_HAIKU_VERSION_STRING "${THEXTECH_VERSION_1}.${THEXTECH_VERSION_2}")
if(NOT ${THEXTECH_VERSION_3} EQUAL 0 OR NOT ${THEXTECH_VERSION_4} EQUAL 0)
string(CONCAT THEXTECH_HAIKU_VERSION_STRING "${THEXTECH_HAIKU_VERSION_STRING}" ".${THEXTECH_VERSION_3}")
endif()
if(NOT ${THEXTECH_VERSION_4} EQUAL 0)
string(CONCAT THEXTECH_HAIKU_VERSION_STRING "${THEXTECH_HAIKU_VERSION_STRING}" ".${THEXTECH_VERSION_4}")
endif()
if(NOT "${THEXTECH_VERSION_REL}" STREQUAL "")
string(SUBSTRING "${THEXTECH_VERSION_REL}" 1 10 THEXTECH_HAIKU_VERSION_REL)
string(CONCAT THEXTECH_HAIKU_VERSION_STRING "${THEXTECH_HAIKU_VERSION_STRING}" "~${THEXTECH_HAIKU_VERSION_REL}")
endif()
string(CONCAT THEXTECH_HAIKU_VERSION_STRING "${THEXTECH_HAIKU_VERSION_STRING}" "-1")
endif()
# Building the version code (for Android)
math(EXPR THEXTECH_VERSION_CODE "1000000 * ${THEXTECH_VERSION_1} + 10000 * ${THEXTECH_VERSION_2} + 100 * ${THEXTECH_VERSION_3} + ${THEXTECH_VERSION_4}")
message("== TheXTech version ${THEXTECH_VERSION_STRING} (${THEXTECH_VERSION_CODE}) ==")
# A reminder that will compare dynamically computed values with a static value, and will fail a configure if mismatch:
# ==================================================
if(NOT "${THEXTECH_ANDROID_VERSION_NAME}" STREQUAL "${THEXTECH_VERSION_STRING}")
message(FATAL_ERROR "Android version name value doesn't matching to the primary version name\n(expected ${THEXTECH_VERSION_STRING}, ${THEXTECH_ANDROID_VERSION_NAME} actually)")
endif()
if(NOT "${THEXTECH_ANDROID_VERSION_CODE}" STREQUAL "${THEXTECH_VERSION_CODE}")
message(FATAL_ERROR "Android version code doesn't matching to the primary version code\n(expected ${THEXTECH_VERSION_CODE}, ${THEXTECH_ANDROID_VERSION_CODE} actually)")
endif()
# ==================================================