commit:     917bf0969e2ba21e65662f9cc4a46ce289a05495
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 13 14:28:09 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 22 10:57:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=917bf096

cmake.eclass: Introduce _CMAKE_MINREQVER_UNSUPPORTED

Allows to split detection/eqawarn and applying cmakearg over different
phases.

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 eclass/cmake.eclass | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index ea5a769b4cb4..4104882005a3 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -123,6 +123,11 @@ fi
 # If set, skip detection of CMakeLists.txt unsupported in CMake 4 in case of
 # false positives (e.g. unused outdated bundled libs).
 
+# @ECLASS_VARIABLE: _CMAKE_MINREQVER_UNSUPPORTED
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Is set to true if an unsupported cmake_minimum_required value was detected.
+
 # @ECLASS_VARIABLE: CMAKE_QA_SRC_DIR_READONLY
 # @USER_VARIABLE
 # @DEFAULT_UNSET
@@ -455,7 +460,7 @@ cmake_src_configure() {
        # Fix xdg collision with sandbox
        xdg_environment_reset
 
-       local file ver cmreq_isold
+       local file ver
        if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then
                while read -d '' -r file ; do
                        ver=$(sed -ne 
"/cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9.]*\)\([)]\|\s\).*$/\2/p;q}"
 \
@@ -463,7 +468,7 @@ cmake_src_configure() {
                        )
 
                        if [[ -n $ver ]] && ver_test $ver -lt "3.5"; then
-                               cmreq_isold=true
+                               _CMAKE_MINREQVER_UNSUPPORTED=true
                        fi
                done < <(find "${CMAKE_USE_DIR}" -type f -iname 
"CMakeLists.txt" -print0)
        fi
@@ -648,7 +653,7 @@ cmake_src_configure() {
                cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" )
        fi
 
-       if [[ ${cmreq_isold} ]]; then
+       if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]]; then
                eqawarn "QA Notice: Compatibility with CMake < 3.5 has been 
removed from CMake 4,"
                eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix."
                eqawarn "See also tracker bug #951350; check existing bug or 
file a new one for"

Reply via email to