cmake: Set RELEASE_CANDIDATE/BETA based on git describe
parent
9b087d15fc
commit
d1a1a2c060
|
@ -12,6 +12,30 @@ set(_OBS_BETA "0" "0" "0" "0")
|
||||||
|
|
||||||
# Set full and canonical OBS version from current git tag or manual override
|
# Set full and canonical OBS version from current git tag or manual override
|
||||||
if(NOT DEFINED OBS_VERSION_OVERRIDE)
|
if(NOT DEFINED OBS_VERSION_OVERRIDE)
|
||||||
|
if(NOT DEFINED RELEASE_CANDIDATE
|
||||||
|
AND NOT DEFINED BETA
|
||||||
|
AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||||
|
execute_process(
|
||||||
|
COMMAND git describe --always --tags --dirty=-modified
|
||||||
|
OUTPUT_VARIABLE _OBS_VERSION
|
||||||
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
|
RESULT_VARIABLE _OBS_VERSION_RESULT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(_OBS_VERSION_RESULT EQUAL 0)
|
||||||
|
if(${_OBS_VERSION} MATCHES "rc[0-9]+$")
|
||||||
|
set(RELEASE_CANDIDATE ${_OBS_VERSION})
|
||||||
|
elseif(${_OBS_VERSION} MATCHES "beta[0-9]+$")
|
||||||
|
set(BETA ${_OBS_VERSION})
|
||||||
|
else()
|
||||||
|
string(REPLACE "-" "." _CANONICAL_SPLIT ${_OBS_VERSION})
|
||||||
|
string(REPLACE "." ";" _CANONICAL_SPLIT ${_CANONICAL_SPLIT})
|
||||||
|
list(GET _CANONICAL_SPLIT 0 1 2 _OBS_VERSION_CANONICAL)
|
||||||
|
string(REPLACE "." ";" _OBS_VERSION ${_OBS_VERSION})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Set release candidate version information Must be a string in the format of
|
# Set release candidate version information Must be a string in the format of
|
||||||
# "x.x.x-rcx"
|
# "x.x.x-rcx"
|
||||||
if(DEFINED RELEASE_CANDIDATE)
|
if(DEFINED RELEASE_CANDIDATE)
|
||||||
|
@ -26,24 +50,7 @@ if(NOT DEFINED OBS_VERSION_OVERRIDE)
|
||||||
string(REPLACE "." ";" _OBS_VERSION ${BETA})
|
string(REPLACE "." ";" _OBS_VERSION ${BETA})
|
||||||
string(REPLACE "." ";" _OBS_BETA ${_OBS_BETA})
|
string(REPLACE "." ";" _OBS_BETA ${_OBS_BETA})
|
||||||
list(GET _OBS_BETA 0 1 2 _OBS_VERSION_CANONICAL)
|
list(GET _OBS_BETA 0 1 2 _OBS_VERSION_CANONICAL)
|
||||||
elseif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
elseif(NOT DEFINED _OBS_VERSION)
|
||||||
execute_process(
|
|
||||||
COMMAND git describe --always --tags --dirty=-modified
|
|
||||||
OUTPUT_VARIABLE _OBS_VERSION
|
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
|
||||||
RESULT_VARIABLE _OBS_VERSION_RESULT
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
if(_OBS_VERSION_RESULT EQUAL 0)
|
|
||||||
string(REPLACE "-" "." _CANONICAL_SPLIT ${_OBS_VERSION})
|
|
||||||
string(REPLACE "." ";" _CANONICAL_SPLIT ${_CANONICAL_SPLIT})
|
|
||||||
list(GET _CANONICAL_SPLIT 0 1 2 _OBS_VERSION_CANONICAL)
|
|
||||||
string(REPLACE "." ";" _OBS_VERSION ${_OBS_VERSION})
|
|
||||||
else()
|
|
||||||
set(_OBS_VERSION "${_OBS_DEFAULT_VERSION}")
|
|
||||||
set(_OBS_VERSION_CANONICAL ${_OBS_DEFAULT_VERSION})
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(_OBS_VERSION ${_OBS_DEFAULT_VERSION})
|
set(_OBS_VERSION ${_OBS_DEFAULT_VERSION})
|
||||||
set(_OBS_VERSION_CANONICAL ${_OBS_DEFAULT_VERSION})
|
set(_OBS_VERSION_CANONICAL ${_OBS_DEFAULT_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue