From af6ea1cc053aa9e9711069a9b1af1d96053b6075 Mon Sep 17 00:00:00 2001 From: Konstantin Goncharik Date: Thu, 30 Jan 2025 21:11:54 +0300 Subject: [PATCH] fix: support pacman epoch in DetectVersion.cmake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relates: #841 Tested: localhost ------------------------ Note: by creating a PR or an issue you automatically agree to the CLA. See [CONTRIBUTING.md](https://github.com/userver-framework/userver/blob/develop/CONTRIBUTING.md). Feel free to remove this note, the agreement holds. Tests: протестировано CI Pull Request resolved: https://github.com/userver-framework/userver/pull/842 commit_hash:e0535d92d96cc65f9d40393c002011c0cbc8695b --- cmake/DetectVersion.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/DetectVersion.cmake b/cmake/DetectVersion.cmake index d496501c723b..687028ddb041 100644 --- a/cmake/DetectVersion.cmake +++ b/cmake/DetectVersion.cmake @@ -95,9 +95,14 @@ function(pacman_version version_output_var pacmanpackage) ) if (version_result EQUAL 0) - if (version_output MATCHES "^(.*) (.*)-.*$") - set(${version_output_var} ${CMAKE_MATCH_2} PARENT_SCOPE) - message(STATUS "pacman version of ${pacmanpackage}: ${CMAKE_MATCH_2}") + # Possible output is `re2 1:20240702-2` (format spec https://wiki.archlinux.org/title/PKGBUILD#Version) + # `re2` is name + # `1` is epoch (optional) + # `20240702` is version + # `2` is release number + if (version_output MATCHES "^(.*) ([0-9]*:)?(.*)-.*$") + set(${version_output_var} ${CMAKE_MATCH_3} PARENT_SCOPE) + message(STATUS "pacman version of ${pacmanpackage}: ${CMAKE_MATCH_3}") else() set(${version_output_var} "NOT_FOUND") endif()