glimpses/cmake/version-from-git.cmake
Tobias Schmidl 6385b2d881 feat: added woodpecker config
Reviewed-on: #1
Co-authored-by: Tobias Schmidl <tobias@schmidl.dev>
Co-committed-by: Tobias Schmidl <tobias@schmidl.dev>
2023-10-06 07:10:26 +02:00

30 lines
1.1 KiB
CMake

# SPDX-FileCopyrightText: 2023 Tobias Schmidl
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# ---- retrieve version information from git ----
set(GIT_DEFAULT_VERSION "0.0.0")
execute_process(
COMMAND git describe --tags --dirty --always
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION_STRING
RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(GIT_DESCRIBE_ERROR_CODE EQUAL 0)
string(REGEX MATCH "^v?([0-9]+)(\\.([0-9]+))?(\\.([0-9]+))?(\\.([0-9]+))?.*$" _ "${GIT_DESCRIBE_VERSION_STRING}")
if(DEFINED CMAKE_MATCH_1)
set(VERSION_STRING "${CMAKE_MATCH_1}")
if(DEFINED CMAKE_MATCH_3)
string(APPEND VERSION_STRING ".${CMAKE_MATCH_3}")
if(DEFINED CMAKE_MATCH_5)
string(APPEND VERSION_STRING ".${CMAKE_MATCH_5}")
if(DEFINED CMAKE_MATCH_7)
string(APPEND VERSION_STRING ".${CMAKE_MATCH_7}")
endif(DEFINED CMAKE_MATCH_7)
endif(DEFINED CMAKE_MATCH_5)
endif(DEFINED CMAKE_MATCH_3)
else(DEFINED CMAKE_MATCH_1)
set(VERSION_STRING "${GIT_DEFAULT_VERSION}")
endif(DEFINED CMAKE_MATCH_1)
endif()