diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2020-01-24 19:24:26 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2020-02-29 19:52:12 +0000 |
commit | 2cf2c80112ae16e8b465cdfb91d85b7d031e67fa (patch) | |
tree | 2371b0c6f124deda01e3ae2d8a49dc1b858af6a7 | |
parent | 0821b182c5ecc4c1090902061673f881318c93bc (diff) | |
download | meson-2cf2c80112ae16e8b465cdfb91d85b7d031e67fa.zip meson-2cf2c80112ae16e8b465cdfb91d85b7d031e67fa.tar.gz meson-2cf2c80112ae16e8b465cdfb91d85b7d031e67fa.tar.bz2 |
Redetect machines after every change to languages
Currently, detect_machine_info() is called:
- from Environment.__init__(), before we have any compiler available
- from Interpreter.__init__() with the list of languages provided to
project() (determined via the initial parse_project())
This is not sufficent in the case where no languages are specified to
project() and are later added with add_languages().
We cannot correctly detect that the host machine should be treated as
x86 (on x86_64 hardware) until we have a compiler we are told to use.
Redetect machines after project(), and after every add_languages().
-rw-r--r-- | mesonbuild/interpreter.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index c29ed89..b00324d 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -2216,7 +2216,9 @@ class Interpreter(InterpreterBase): self.build_def_files = [os.path.join(self.subdir, environment.build_filename)] if not mock: self.parse_project() + self._redetect_machines() + def _redetect_machines(self): # Re-initialize machine descriptions. We can do a better job now because we # have the compilers needed to gain more knowledge, so wipe out old # inference and start over. @@ -3014,6 +3016,7 @@ external dependencies (including libraries) must go to "dependencies".''') success &= self.add_languages_for(args, required, MachineChoice.HOST) if not self.coredata.is_cross_build(): self.coredata.copy_build_options_from_regular_ones() + self._redetect_machines() return success def add_languages_for(self, args, required, for_machine: MachineChoice): |