aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2025-02-28 01:25:25 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2025-02-28 01:25:25 +0200
commit8bd9242d25fd02cb0e8cbb56cb2722b238a7e2bb (patch)
tree728eea8ef9f18b76a552b8dfc22303c2c421de5b
parent8546e408c67a783b5b04063834eff55f3e53eaf2 (diff)
downloadmeson-fixglib.zip
meson-fixglib.tar.gz
meson-fixglib.tar.bz2
Actually fix base option default values.fixglib
-rw-r--r--mesonbuild/interpreter/interpreter.py7
-rw-r--r--mesonbuild/options.py4
2 files changed, 6 insertions, 5 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 0b16266..b0bda85 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1081,12 +1081,13 @@ class Interpreter(InterpreterBase, HoldableObject):
raise InterpreterException(f'Invalid option name {optname!r}')
try:
- value_object, value = self.coredata.optstore.get_option_from_meson_file(options.OptionKey(optname, self.subproject))
+ optkey = options.OptionKey(optname, self.subproject)
+ value_object, value = self.coredata.optstore.get_option_from_meson_file(optkey)
except KeyError:
- if self.coredata.optstore.is_base_option(optname):
+ if self.coredata.optstore.is_base_option(optkey):
# Due to backwards compatibility return the default
# option for base options instead of erroring out.
- value_object, value = self.get_default_for_b_option(optname)
+ return self.coredata.optstore.get_default_for_b_option(optname)
else:
if self.subproject:
raise MesonException(f'Option {optname} does not exist for subproject {self.subproject}.')
diff --git a/mesonbuild/options.py b/mesonbuild/options.py
index 79ba30b..0bb32b7 100644
--- a/mesonbuild/options.py
+++ b/mesonbuild/options.py
@@ -1100,12 +1100,12 @@ class OptionStore:
(value_object, value) = self.get_value_object_and_value_for(key)
return (value_object, value)
- def get_default_for_b_option(self, keyname: str) -> T.Tuple[AnyOptionType, OptionValueType]:
+ def get_default_for_b_option(self, keyname: str) -> ElementaryOptionValues:
assert keyname.startswith('b_')
from .compilers.compilers import BASE_OPTIONS
for bkey, bvalue in BASE_OPTIONS.items():
if bkey.name == keyname:
- return (T.cast('AnyOptionType', bvalue), bvalue.default)
+ return T.cast('ElementaryOptionValues', bvalue.default)
raise MesonBugException(f'Requested base option {keyname} which does not exist.')
def remove(self, key: OptionKey) -> None: