diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2020-05-07 16:58:22 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2020-05-11 18:02:37 -0400 |
commit | 245d659522fd73857bf7f4e83bd572d9cdcd7469 (patch) | |
tree | 2b745c9ff1f4665a0fe22271fbb8ef54f084e1c0 /mesonbuild/dependencies/base.py | |
parent | 630a00374600bffedbabb8ef623e16bed52f21c4 (diff) | |
download | meson-245d659522fd73857bf7f4e83bd572d9cdcd7469.zip meson-245d659522fd73857bf7f4e83bd572d9cdcd7469.tar.gz meson-245d659522fd73857bf7f4e83bd572d9cdcd7469.tar.bz2 |
ConfigToolDependency: Don't fallback to system tool when cross compiling
The system tool is always the wrong thing to use and cause hard to debug
issues when trying to link system libraries with cross built binaries.
The ExternalDependency base class already had a method to deal with
this, used by PkgConfigDependency and QtBaseDependency, so it should
make things more consistent.
Diffstat (limited to 'mesonbuild/dependencies/base.py')
-rw-r--r-- | mesonbuild/dependencies/base.py | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 95a3956..bcb1531 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -437,28 +437,11 @@ class ConfigToolDependency(ExternalDependency): """ if not isinstance(versions, list) and versions is not None: versions = listify(versions) - - tool = self.env.lookup_binary_entry(self.for_machine, self.tool_name) - if tool is not None: - tools = [tool] - else: - if not self.env.machines.matches_build_machine(self.for_machine): - mlog.deprecation('No entry for {0} specified in your cross file. ' - 'Falling back to searching PATH. This may find a ' - 'native version of {0}! This will become a hard ' - 'error in a future version of meson'.format(self.tool_name)) - tools = [[t] for t in self.tools] - best_match = (None, None) - for tool in tools: - if len(tool) == 1: - # In some situations the command can't be directly executed. - # For example Shell scripts need to be called through sh on - # Windows (see issue #1423). - potential_bin = ExternalProgram(tool[0], silent=True) - if not potential_bin.found(): - continue - tool = potential_bin.get_command() + for potential_bin in self.search_tool(self.tool_name, self.tool_name, self.tools): + if not potential_bin.found(): + continue + tool = potential_bin.get_command() try: p, out = Popen_safe(tool + [self.version_arg])[:2] except (FileNotFoundError, PermissionError): |