summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz93@gmail.com>2025-11-10 11:01:01 -0500
committerEli Schwartz <eschwartz93@gmail.com>2025-11-14 03:16:18 -0500
commit2f1bc62dfff6c9b24ad524bca3637572ef304bf3 (patch)
tree19586ca70e1614994a9ccb6177289c67d365726b /mesonbuild/interpreter
parent74395f67e702848d5148c165ce8dbf442fc18636 (diff)
downloadmeson-2f1bc62dfff6c9b24ad524bca3637572ef304bf3.tar.gz
version_compare with meson.version() override should log when it doesn't work
meson_version: '>=1.8.0' works to control FeatureNew -- but < does not. Likewise with version_compare. This may or may not surprise people. Leave a hint in the logfile.
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/primitives/string.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/primitives/string.py b/mesonbuild/interpreter/primitives/string.py
index df10c568d..86616a39d 100644
--- a/mesonbuild/interpreter/primitives/string.py
+++ b/mesonbuild/interpreter/primitives/string.py
@@ -7,6 +7,7 @@ import os
import typing as T
+from ... import mlog
from ...mesonlib import version_compare, version_compare_many, underscorify
from ...interpreterbase import (
InterpreterObject,
@@ -200,6 +201,13 @@ class MesonVersionStringHolder(StringHolder):
@typed_pos_args('str.version_compare', str)
@InterpreterObject.method('version_compare')
def version_compare_method(self, args: T.Tuple[str], kwargs: TYPE_kwargs) -> bool:
+ unsupported = []
+ if not args[0].strip().startswith('>'):
+ unsupported.append('non-upper-bounds (> or >=) constraints')
+ if unsupported:
+ mlog.debug('meson.version().version_compare() with', ' or '.join(unsupported),
+ 'does not support overriding minimum meson_version checks.')
+
self.interpreter.tmp_meson_version = args[0]
return version_compare(self.held_object, args[0])