diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-06-06 19:19:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-06 19:19:06 +0300 |
commit | 09a722c4bd6bf3014190ecc4d91eee1110affd99 (patch) | |
tree | d90a1df01feb683efa47cb75b87e26ba3eef11c4 /mesonbuild/interpreter.py | |
parent | 27c5d9f16f535b2aacdf009744d4f99d59b9c81f (diff) | |
parent | 82e36a6bfe3c765e81438492bdff81e248f11c53 (diff) | |
download | meson-09a722c4bd6bf3014190ecc4d91eee1110affd99.zip meson-09a722c4bd6bf3014190ecc4d91eee1110affd99.tar.gz meson-09a722c4bd6bf3014190ecc4d91eee1110affd99.tar.bz2 |
Merge pull request #5263 from Ericson2314/per-machine-cli-args
Per machine 'build_' and '' options
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 25 |
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(): |