diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-07-17 22:54:58 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-08-06 21:34:15 +0300 |
commit | 5fd4963766fe53d4a6db24a2cb7cb54e21600fe9 (patch) | |
tree | 08c48cdf5927bfdf12d3a00a07135a2a9ad44b07 /mesonbuild | |
parent | 534c95cc3eae86bb8e08bee5f5162ca65bc53461 (diff) | |
download | meson-5fd4963766fe53d4a6db24a2cb7cb54e21600fe9.zip meson-5fd4963766fe53d4a6db24a2cb7cb54e21600fe9.tar.gz meson-5fd4963766fe53d4a6db24a2cb7cb54e21600fe9.tar.bz2 |
Made build. options alias basic ones when native building.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/coredata.py | 23 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 2 |
2 files changed, 25 insertions, 0 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 2d3d5ab..48aeda8 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -635,7 +635,28 @@ class CoreData: if type(oldval) != type(value): self.user_options[name] = value + def is_cross_build(self): + return len(self.cross_files) > 0 + + def strip_build_option_names(self, options): + res = {} + for k, v in options.items(): + if k.startswith('build.'): + k = k.split('.', 1)[1] + res[k] = v + return res + + def copy_build_options_from_regular_ones(self): + assert(not self.is_cross_build()) + for k, o in self.builtins_per_machine.host.items(): + self.builtins_per_machine.build[k].set_value(o.value) + for k, o in self.compiler_options.host.items(): + if k in self.compiler_options.build: + self.compiler_options.build[k].set_value(o.value) + def set_options(self, options, *, subproject='', warn_unknown=True): + if not self.is_cross_build(): + options = self.strip_build_option_names(options) # Set prefix first because it's needed to sanitize other options prefix = self.builtins['prefix'].value if 'prefix' in options: @@ -663,6 +684,8 @@ class CoreData: unknown_options = ', '.join(sorted(unknown_options)) sub = 'In subproject {}: '.format(subproject) if subproject else '' mlog.warning('{}Unknown options: "{}"'.format(sub, unknown_options)) + if not self.is_cross_build(): + self.copy_build_options_from_regular_ones() def set_default_options(self, default_options, subproject, env): # Set defaults first from conf files (cross or native), then diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 03bbcc1..c6ad815 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2795,6 +2795,8 @@ external dependencies (including libraries) must go to "dependencies".''') def add_languages(self, args: Sequence[str], required: bool) -> bool: success = self.add_languages_for(args, required, MachineChoice.BUILD) success &= self.add_languages_for(args, required, MachineChoice.HOST) + if not self.coredata.is_cross_build(): + self.coredata.copy_build_options_from_regular_ones() return success def add_languages_for(self, args, required, for_machine: MachineChoice): |