cmake: add versioning module
This commit is contained in:
parent
7ae7155f25
commit
1791063fa8
2 changed files with 43 additions and 3 deletions
26
cmake/Versioning.cmake
Normal file
26
cmake/Versioning.cmake
Normal file
|
@ -0,0 +1,26 @@
|
|||
find_package(Git)
|
||||
|
||||
if(GIT_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --tags
|
||||
OUTPUT_VARIABLE TAG_VERSION
|
||||
RESULT_VARIABLE ERROR_CODE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(TAG_VERSION STREQUAL "")
|
||||
set(TAG_VERSION 0.0.0)
|
||||
message(WARNING "Failed to determine version from Git tags. Using default version \"${TAG_VERSION}\".")
|
||||
endif()
|
||||
|
||||
message(STATUS "Project version: ${TAG_VERSION}")
|
||||
|
||||
# Split into major, minor, patch
|
||||
string(
|
||||
REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)"
|
||||
TAG_VERSION_MATCH ${TAG_VERSION}
|
||||
)
|
||||
set(TAG_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
set(TAG_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||
set(TAG_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||
endif()
|
Loading…
Add table
Add a link
Reference in a new issue