diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2025-02-28 01:25:25 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2025-02-28 01:25:25 +0200 |
commit | 8bd9242d25fd02cb0e8cbb56cb2722b238a7e2bb (patch) | |
tree | 728eea8ef9f18b76a552b8dfc22303c2c421de5b | |
parent | 8546e408c67a783b5b04063834eff55f3e53eaf2 (diff) | |
download | meson-fixglib.zip meson-fixglib.tar.gz meson-fixglib.tar.bz2 |
Actually fix base option default values.fixglib
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 7 | ||||
-rw-r--r-- | mesonbuild/options.py | 4 |
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: |