-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathVERSION.cmake
More file actions
38 lines (32 loc) · 1.64 KB
/
Copy pathVERSION.cmake
File metadata and controls
38 lines (32 loc) · 1.64 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
35
36
37
38
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}" "Versions")
if (WIN32)
string(JSON KDRIVE_VERSION_OS_JSONOBJ GET "${KDRIVE_VERSION_JSONOBJ}" "Windows")
elseif (APPLE)
string(JSON KDRIVE_VERSION_OS_JSONOBJ GET "${KDRIVE_VERSION_JSONOBJ}" "macOS")
else()
string(JSON KDRIVE_VERSION_OS_JSONOBJ GET "${KDRIVE_VERSION_JSONOBJ}" "Linux")
endif()
string(JSON KDRIVE_VERSION_MAJOR GET "${KDRIVE_VERSION_OS_JSONOBJ}" "major")
string(JSON KDRIVE_VERSION_MINOR GET "${KDRIVE_VERSION_OS_JSONOBJ}" "minor")
string(JSON KDRIVE_VERSION_PATCH GET "${KDRIVE_VERSION_OS_JSONOBJ}" "patch")
string(JSON KDRIVE_VERSION_BUILD GET "${KDRIVE_VERSION_OS_JSONOBJ}" "build")
string(JSON KDRIVE_VERSION_YEAR GET "${KDRIVE_VERSION_OS_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_FULL}")
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}")