diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 16b9d4235..d70c23038 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -483,8 +483,13 @@ class CoreData: yield self.compiler_options yield self.base_options + def get_all_options(self): + return chain( + iter([self.builtins]), + self._get_all_nonbuiltin_options()) + def validate_option_value(self, option_name, override_value): - for opts in chain(iter([self.builtins]), self._get_all_nonbuiltin_options()): + for opts in self.get_all_options(): if option_name in opts: opt = opts[option_name] return opt.validate_value(override_value) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 558e6eb85..4d4445ed6 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1957,10 +1957,7 @@ 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.builtins, env.coredata.compiler_options, - env.coredata.backend_options, env.coredata.base_options, - env.coredata.user_options]: + 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 and def_opt_value != cur_opt_value.value):