aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 83fc2f1..a945f70 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2097,12 +2097,12 @@ class Interpreter(InterpreterBase):
def get_non_matching_default_options(self):
env = self.environment
for def_opt_name, def_opt_value in self.project_default_options.items():
- for option_type in env.coredata.get_all_options():
- for cur_opt_name, cur_opt_value in option_type.items():
- if def_opt_name == cur_opt_name:
- def_opt_value = env.coredata.validate_option_value(def_opt_name, def_opt_value)
- if def_opt_value != cur_opt_value.value:
- yield (def_opt_name, def_opt_value, cur_opt_value)
+ for opts in env.coredata.get_all_options():
+ cur_opt_value = opts.get(def_opt_name)
+ if cur_opt_value is not None:
+ def_opt_value = env.coredata.validate_option_value(def_opt_name, def_opt_value)
+ if def_opt_value != cur_opt_value.value:
+ yield (def_opt_name, def_opt_value, cur_opt_value)
def build_func_dict(self):
self.funcs.update({'add_global_arguments': self.func_add_global_arguments,
@@ -2519,13 +2519,14 @@ external dependencies (including libraries) must go to "dependencies".''')
return self.subprojects[dirname]
def get_option_internal(self, optname):
- for d in chain(
+ for opts in chain(
[self.coredata.base_options, compilers.base_options, self.coredata.builtins],
- self.coredata.get_all_compiler_options()):
- try:
- return d[optname]
- except KeyError:
- pass
+ self.coredata.get_prefixed_options_per_machine(self.coredata.builtins_per_machine),
+ self.coredata.get_prefixed_options_per_machine(self.coredata.compiler_options),
+ ):
+ v = opts.get(optname)
+ if v is not None:
+ return v
raw_optname = optname
if self.is_subproject():