-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathVERSION.cmake
More file actions
34 lines (28 loc) · 1.46 KB
/
VERSION.cmake
File metadata and controls
34 lines (28 loc) · 1.46 KB
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
set(VERSION_JSON_FILE "${CMAKE_CURRENT_LIST_DIR}/version.json")
if(NOT EXISTS "${VERSION_JSON_FILE}")
message(FATAL_ERROR "version.json not found at ${VERSION_JSON_FILE}")
endif()
# Read JSON content
file(READ "${VERSION_JSON_FILE}" VERSION_JSON_CONTENT)
# Parse Version fields
string(JSON KDRIVE_VERSION_JSONOBJ GET "${VERSION_JSON_CONTENT}" "Version")
string(JSON KDRIVE_VERSION_MAJOR GET "${KDRIVE_VERSION_JSONOBJ}" "major")
string(JSON KDRIVE_VERSION_MINOR GET "${KDRIVE_VERSION_JSONOBJ}" "minor")
string(JSON KDRIVE_VERSION_PATCH GET "${KDRIVE_VERSION_JSONOBJ}" "patch")
string(JSON KDRIVE_VERSION_BUILD GET "${KDRIVE_VERSION_JSONOBJ}" "build")
string(JSON KDRIVE_VERSION_YEAR GET "${KDRIVE_VERSION_JSONOBJ}" "year")
# Composite defines
set(KDRIVE_VERSION "${KDRIVE_VERSION_MAJOR}.${KDRIVE_VERSION_MINOR}.${KDRIVE_VERSION_PATCH}")
set(KDRIVE_VERSION_FULL "${KDRIVE_VERSION}.${KDRIVE_VERSION_BUILD}")
set(KDRIVE_VERSION_STRING "${KDRIVE_VERSION}")
if(KDRIVE_VERSION_BUILD)
set(KDRIVE_VERSION_STRING "${KDRIVE_VERSION_STRING} (build ${KDRIVE_VERSION_BUILD})")
endif()
message(STATUS "Calculated KDrive Version:")
message(STATUS "- Major: ${KDRIVE_VERSION_MAJOR}")
message(STATUS "- Minor: ${KDRIVE_VERSION_MINOR}")
message(STATUS "- Patch: ${KDRIVE_VERSION_PATCH}")
message(STATUS "- Build: ${KDRIVE_VERSION_BUILD}")
message(STATUS "- Full: ${KDRIVE_VERSION_FULL}")
message(STATUS "- Year: ${KDRIVE_VERSION_YEAR}")
message(STATUS "- Version String: ${KDRIVE_VERSION_STRING}")