Browse Source
cmake: read version numbers from the version.pri file. Closes #6350.adaptive-webui-19844
sledgehammer999
8 years ago
committed by
GitHub
2 changed files with 34 additions and 8 deletions
@ -0,0 +1,28 @@ |
|||||||
|
# function for parsing version variables that are set in version.pri file |
||||||
|
# the version identifiers there are defined as follows: |
||||||
|
# VER_MAJOR = 3 |
||||||
|
# VER_MINOR = 4 |
||||||
|
# VER_BUGFIX = 0 |
||||||
|
# VER_BUILD = 0 |
||||||
|
# VER_STATUS = alpha |
||||||
|
|
||||||
|
function(read_version priFile outMajor outMinor outBugfix outBuild outStatus) |
||||||
|
file(STRINGS ${priFile} _priFileContents REGEX "^VER_.+") |
||||||
|
# message(STATUS "version.pri version contents: ${_priFileContents}") |
||||||
|
# the _priFileContents variable contains something like the following: |
||||||
|
# VER_MAJOR = 3;VER_MINOR = 4;VER_BUGFIX = 0;VER_BUILD = 0;VER_STATUS = alpha # Should be empty for stable releases! |
||||||
|
set(_regex "VER_MAJOR += +([0-9]+);VER_MINOR += +([0-9]+);VER_BUGFIX += +([0-9]+);VER_BUILD += +([0-9]+);VER_STATUS += +([0-9A-Za-z]+)?") |
||||||
|
# note quotes around _regex, they are needed because the variable contains semicolons |
||||||
|
string(REGEX MATCH "${_regex}" _tmp "${_priFileContents}") |
||||||
|
if (NOT _tmp) |
||||||
|
message(FATAL_ERROR "Could not detect project version number from ${priFile}") |
||||||
|
endif() |
||||||
|
|
||||||
|
# message(STATUS "Matched version string: ${_tmp}") |
||||||
|
|
||||||
|
set(${outMajor} ${CMAKE_MATCH_1} PARENT_SCOPE) |
||||||
|
set(${outMinor} ${CMAKE_MATCH_2} PARENT_SCOPE) |
||||||
|
set(${outBugfix} ${CMAKE_MATCH_3} PARENT_SCOPE) |
||||||
|
set(${outBuild} ${CMAKE_MATCH_4} PARENT_SCOPE) |
||||||
|
set(${outStatus} ${CMAKE_MATCH_5} PARENT_SCOPE) |
||||||
|
endfunction() |
Loading…
Reference in new issue