[cmake] unify version creation

* move to common cmake/GetProjectVersion.cmake for both, WinPR and
  FreeRDP
* add preference for git tag or commit
* move options to this common file
This commit is contained in:
akallabeth
2025-06-27 11:48:17 +02:00
parent 29f0145b6a
commit f3e1f20018
5 changed files with 56 additions and 56 deletions

View File

@@ -130,25 +130,8 @@ if(NOT WIN32)
endif()
# Soname versioning
set(VERSION_REGEX "^(.*)([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)")
set(RAW_VERSION_STRING "3.16.1-dev0")
if(EXISTS "${PROJECT_SOURCE_DIR}/.source_tag")
file(READ ${PROJECT_SOURCE_DIR}/.source_tag RAW_VERSION_STRING)
elseif(USE_VERSION_FROM_GIT_TAG)
git_get_exact_tag(_GIT_TAG --tags --always)
if(NOT ${_GIT_TAG} STREQUAL "n/a")
string(REGEX MATCH ${VERSION_REGEX} FOUND_TAG "${_GIT_TAG}")
if(FOUND_TAG)
set(RAW_VERSION_STRING ${_GIT_TAG})
endif()
endif()
endif()
string(STRIP ${RAW_VERSION_STRING} RAW_VERSION_STRING)
string(REGEX REPLACE "${VERSION_REGEX}" "\\2" WINPR_VERSION_MAJOR "${RAW_VERSION_STRING}")
string(REGEX REPLACE "${VERSION_REGEX}" "\\3" WINPR_VERSION_MINOR "${RAW_VERSION_STRING}")
string(REGEX REPLACE "${VERSION_REGEX}" "\\4" WINPR_VERSION_REVISION "${RAW_VERSION_STRING}")
string(REGEX REPLACE "${VERSION_REGEX}" "\\5" WINPR_VERSION_SUFFIX "${RAW_VERSION_STRING}")
include(GetProjectVersion)
get_project_version(WINPR_VERSION_MAJOR WINPR_VERSION_MINOR WINPR_VERSION_REVISION WINPR_VERSION_SUFFIX GIT_REVISION)
set(WINPR_VERSION "${WINPR_VERSION_MAJOR}.${WINPR_VERSION_MINOR}.${WINPR_VERSION_REVISION}")
set(WINPR_API_VERSION "${WINPR_VERSION_MAJOR}")