55 lines
2.1 KiB
CMake
55 lines
2.1 KiB
CMake
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
# Licensed under the MIT License.
|
|
|
|
# string(JOIN ...) was added in CMake 3.11 and thus can not be used.
|
|
# string_join was written to mimic string(JOIN ...) functionality and
|
|
# interface.
|
|
function(string_join GLUE OUTPUT VALUES)
|
|
set(_TEMP_VALUES ${VALUES} ${ARGN})
|
|
string(REPLACE ";" "${GLUE}" _TEMP_STR "${_TEMP_VALUES}")
|
|
set(${OUTPUT} "${_TEMP_STR}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# Set the default version string if it wasn't defined in the build configuration
|
|
if (NOT DEFINED VERSION_STR)
|
|
set(VERSION_STR "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.0-private")
|
|
endif()
|
|
|
|
set(SEMVER_REGEX "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(\\-([a-zA-Z0-9\\._]+))?(\\+([a-zA-Z0-9\\._]+))?$")
|
|
string(REGEX MATCH ${SEMVER_REGEX} VERSION_MATCH ${VERSION_STR})
|
|
|
|
if (NOT VERSION_MATCH)
|
|
message(FATAL_ERROR "Contents of VERSION_STR ('${VERSION_STR}') are not a valid version")
|
|
endif()
|
|
|
|
if (NOT ("${CMAKE_MATCH_1}" STREQUAL "${PROJECT_VERSION_MAJOR}"))
|
|
# You can update cmake project version in the project() command in the root CMakeLists.txt
|
|
message(FATAL "CMake Project Major Version \"${PROJECT_VERSION_MAJOR}\" did not match VERSION_STR major version \"${CMAKE_MATCH_1}\"")
|
|
endif()
|
|
|
|
if (NOT ("${CMAKE_MATCH_2}" STREQUAL "${PROJECT_VERSION_MINOR}"))
|
|
# You can update cmake project version in the project() command in the root CMakeLists.txt
|
|
message(FATAL "CMake Project Minor Version \"${PROJECT_VERSION_MINOR}\" did not match VERSION_STR minor version \"${CMAKE_MATCH_2}\"")
|
|
endif()
|
|
|
|
set(K4A_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
set(K4A_VERSION_MINOR ${CMAKE_MATCH_2})
|
|
set(K4A_VERSION_PATCH ${CMAKE_MATCH_3})
|
|
set(K4A_VERSION_PRERELEASE ${CMAKE_MATCH_5})
|
|
set(K4A_VERSION_BUILDMETADATA ${CMAKE_MATCH_7})
|
|
set(K4A_VERSION_STR ${VERSION_STR})
|
|
|
|
if (NOT K4A_VERSION_REVISION)
|
|
set(K4A_VERSION_REVISION "0")
|
|
endif()
|
|
|
|
|
|
set(K4A_COMPANYNAME "Microsoft")
|
|
set(K4A_PRODUCTNAME "Azure Kinect")
|
|
set(K4A_COPYRIGHT "Copyright Microsoft Corporation. All rights reserved.")
|
|
|
|
set(
|
|
K4A_VERSION
|
|
"${K4A_VERSION_MAJOR}.${K4A_VERSION_MINOR}.${K4A_VERSION_PATCH}"
|
|
)
|