environment: simplify handling of native files with no cross files

Instead of treating native files as always being for the build machine,
and then copying them to the host machine, treat them as for the build
machine only when a cross file is also present
0.57
Dylan Baker 4 years ago committed by Nirbheek Chauhan
parent 88902c5d9b
commit 42ee564459
  1. 10
      mesonbuild/environment.py

@ -640,7 +640,9 @@ class Environment:
binaries.build = BinaryTable(config.get('binaries', {})) binaries.build = BinaryTable(config.get('binaries', {}))
properties.build = Properties(config.get('properties', {})) properties.build = Properties(config.get('properties', {}))
cmakevars.build = CMakeVariables(config.get('cmake', {})) cmakevars.build = CMakeVariables(config.get('cmake', {}))
self._load_machine_file_options(config, properties.build, MachineChoice.BUILD) self._load_machine_file_options(
config, properties.build,
MachineChoice.BUILD if self.coredata.cross_files else MachineChoice.HOST)
## Read in cross file(s) to override host machine configuration ## Read in cross file(s) to override host machine configuration
@ -659,12 +661,6 @@ class Environment:
if self.coredata.is_per_machine_option(key): if self.coredata.is_per_machine_option(key):
self.options[key.as_build()] = value self.options[key.as_build()] = value
self._load_machine_file_options(config, properties.host, MachineChoice.HOST) self._load_machine_file_options(config, properties.host, MachineChoice.HOST)
else:
# If we aren't cross compiling, but we have a native file, the
# native file is for the host. This is due to an mismatch between
# meson internals which talk about build an host, and external
# interfaces which talk about native and cross.
self.options = {k.as_host(): v for k, v in self.options.items()}
## "freeze" now initialized configuration, and "save" to the class. ## "freeze" now initialized configuration, and "save" to the class.

Loading…
Cancel
Save