aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-10-12 22:40:19 -0400
committerXavier Claessens <xclaesse@gmail.com>2022-03-22 17:20:48 -0400
commit34f442a365cabdec884b7e9c9631bef434b7f989 (patch)
tree9987fd4a76247ad67e99db074de3bdab66502266 /mesonbuild/backend
parent06d12064d0ccb1477fadf1d62492a493fb2fb947 (diff)
downloadmeson-34f442a365cabdec884b7e9c9631bef434b7f989.zip
meson-34f442a365cabdec884b7e9c9631bef434b7f989.tar.gz
meson-34f442a365cabdec884b7e9c9631bef434b7f989.tar.bz2
OptionOverrideProxy: Handle per-subproject options
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/backends.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 2a955db..b15cfd0 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -312,19 +312,16 @@ class Backend:
def get_options_for_target(self, target: build.BuildTarget) -> OptionOverrideProxy:
return OptionOverrideProxy(target.option_overrides,
- self.environment.coredata.options)
+ self.environment.coredata.options,
+ target.subproject)
- def get_option_for_target(self, option_name: 'OptionKey', target: build.BuildTarget) -> T.Union[str, int, bool, 'WrapMode']:
- if option_name in target.option_overrides_base:
- override = target.option_overrides_base[option_name]
- v = self.environment.coredata.validate_option_value(option_name, override)
- else:
- v = self.environment.coredata.get_option(option_name.evolve(subproject=target.subproject))
+ def get_option_for_target(self, key: 'OptionKey', target: build.BuildTarget) -> T.Union[str, int, bool, 'WrapMode']:
+ options = self.get_options_for_target(target)
# We don't actually have wrapmode here to do an assert, so just do a
# cast, we know what's in coredata anyway.
# TODO: if it's possible to annotate get_option or validate_option_value
# in the future we might be able to remove the cast here
- return T.cast('T.Union[str, int, bool, WrapMode]', v)
+ return T.cast('T.Union[str, int, bool, WrapMode]', options[key].value)
def get_source_dir_include_args(self, target: build.BuildTarget, compiler: 'Compiler', *, absolute_path: bool = False) -> T.List[str]:
curdir = target.get_subdir()