aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2020-01-24 19:24:26 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2020-02-29 19:52:12 +0000
commit2cf2c80112ae16e8b465cdfb91d85b7d031e67fa (patch)
tree2371b0c6f124deda01e3ae2d8a49dc1b858af6a7
parent0821b182c5ecc4c1090902061673f881318c93bc (diff)
downloadmeson-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.py3
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):