summaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2025-02-28 01:25:25 +0200
committerDylan Baker <dylan@pnwbakers.com>2025-02-27 23:20:17 -0800
commite4de716d504a56cd9f87683334facc82aea3d200 (patch)
tree315cc27fe9a770241dbeac2a2413fdd3c2b075f2 /mesonbuild
parent8546e408c67a783b5b04063834eff55f3e53eaf2 (diff)
downloadmeson-e4de716d504a56cd9f87683334facc82aea3d200.tar.gz
Actually fix base option default values.
Diffstat (limited to 'mesonbuild')
-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 0b16266f7..b0bda8556 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 79ba30b95..0bb32b733 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: