50 lines
1.1 KiB
CMake
50 lines
1.1 KiB
CMake
#
|
|
# Version
|
|
#
|
|
|
|
file(READ "version.txt" version)
|
|
|
|
if(version MATCHES "VERSION_MAJ *= *([0-9]+)")
|
|
set(VERSION_MAJ ${CMAKE_MATCH_1})
|
|
else()
|
|
set(VERSION_ERROR "VERSION_MAJ")
|
|
endif()
|
|
|
|
if(version MATCHES "VERSION_MIN *= *([0-9]+)")
|
|
set(VERSION_MIN ${CMAKE_MATCH_1})
|
|
else()
|
|
set(VERSION_ERROR "VERSION_MIN")
|
|
endif()
|
|
|
|
if(version MATCHES "VERSION_PATCH *= *([0-9]+)")
|
|
set(VERSION_PATCH ${CMAKE_MATCH_1})
|
|
else()
|
|
set(VERSION_ERROR "VERSION_PATCH")
|
|
endif()
|
|
|
|
if(version MATCHES "VERSION_TYPE *= *(a|b|rc|r)")
|
|
set(VERSION_TYPE ${CMAKE_MATCH_1})
|
|
else()
|
|
set(VERSION_ERROR "VERSION_TYPE")
|
|
endif()
|
|
|
|
if(version MATCHES "VERSION_BUILD *= *([0-9]+)")
|
|
set(VERSION_BUILD ${CMAKE_MATCH_1})
|
|
elseif(NOT VERSION_TYPE STREQUAL "r")
|
|
set(VERSION_ERROR "VERSION_BUILD")
|
|
endif()
|
|
|
|
if (VERSION_ERROR)
|
|
message(FATAL_ERROR "Error parsing version at " ${VERSION_ERROR})
|
|
endif()
|
|
|
|
set(VERSION_NUMBER ${VERSION_MAJ}.${VERSION_MIN}.${VERSION_PATCH})
|
|
|
|
if(VERSION_TYPE STREQUAL "r")
|
|
set(VERSION "${VERSION_NUMBER}")
|
|
else()
|
|
set(VERSION "${VERSION_NUMBER}-${VERSION_TYPE}.${VERSION_BUILD}")
|
|
endif()
|
|
|
|
message(STATUS "Version " ${VERSION})
|