From f5bd3254e926087091ed4c0e5e561d9118aa114b Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 8 Jun 2020 12:21:42 -0700 Subject: dependencies: Don't allow using the default binary for host on cross compiles Otherwise we can end up finding dependencies from the build machine for the host machine, which is incorrect. This alters cmake, pkg-config, and all config-tool based dependencies. Fixes: #7276 --- mesonbuild/cmake/executor.py | 2 +- mesonbuild/dependencies/base.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mesonbuild/cmake/executor.py b/mesonbuild/cmake/executor.py index ae4891823..d64286a2e 100644 --- a/mesonbuild/cmake/executor.py +++ b/mesonbuild/cmake/executor.py @@ -93,7 +93,7 @@ class CMakeExecutor: mlog.debug('CMake binary for %s is not cached' % self.for_machine) for potential_cmakebin in find_external_program( environment, self.for_machine, 'cmake', 'CMake', - environment.default_cmake): + environment.default_cmake, allow_default_for_cross=False): version_if_ok = self.check_cmake(potential_cmakebin) if not version_if_ok: continue diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 7bff08238..828f81e49 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -444,7 +444,7 @@ class ConfigToolDependency(ExternalDependency): best_match = (None, None) for potential_bin in find_external_program( self.env, self.for_machine, self.tool_name, - self.tool_name, self.tools): + self.tool_name, self.tools, allow_default_for_cross=False): if not potential_bin.found(): continue tool = potential_bin.get_command() @@ -568,9 +568,9 @@ class PkgConfigDependency(ExternalDependency): else: assert PkgConfigDependency.class_pkgbin[self.for_machine] is None mlog.debug('Pkg-config binary for %s is not cached.' % self.for_machine) - for potential_pkgbin in find_external_program(self.env, self.for_machine, 'pkgconfig', 'Pkg-config', environment.default_pkgconfig): - mlog.debug('Trying pkg-config binary {} for machine {} at {}' - .format(potential_pkgbin.name, self.for_machine, potential_pkgbin.command)) + for potential_pkgbin in find_external_program( + self.env, self.for_machine, 'pkgconfig', 'Pkg-config', + environment.default_pkgconfig, allow_default_for_cross=False): version_if_ok = self.check_pkgconfig(potential_pkgbin) if not version_if_ok: continue -- cgit v1.3