diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-01-07 12:14:57 -0800 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-01-12 19:07:04 +0000 |
commit | e6a167ce092a36017a4ff56b3fb045be62377a25 (patch) | |
tree | bf93e408779c7e46f4c204a62b52da2808fde90e | |
parent | 9efcdba0d59a95d9c5ddd9c32f7870ac2183c5ea (diff) | |
download | meson-e6a167ce092a36017a4ff56b3fb045be62377a25.zip meson-e6a167ce092a36017a4ff56b3fb045be62377a25.tar.gz meson-e6a167ce092a36017a4ff56b3fb045be62377a25.tar.bz2 |
dependencies: use env.machines for is_$os methods
Currently we use the mesonlib ones, but these are always the build
machine definitions, rather than being available for either the build or
host machine. We already have an `Environment` instance, and the correct
`MachineChoice`, so lets use that.
Fixes #8165
-rw-r--r-- | mesonbuild/dependencies/base.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 9330e46..99faf4a 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -573,7 +573,7 @@ class PkgConfigDependency(ExternalDependency): # We cache all pkg-config subprocess invocations to avoid redundant calls pkgbin_cache = {} - def __init__(self, name, environment, kwargs, language: T.Optional[str] = None): + def __init__(self, name, environment: 'Environment', kwargs, language: T.Optional[str] = None): super().__init__('pkgconfig', environment, kwargs, language=language) self.name = name self.is_libtool = False @@ -697,7 +697,7 @@ class PkgConfigDependency(ExternalDependency): with / like /home/foo so leave them as-is so that the user gets an error/warning from the compiler/linker. ''' - if not mesonlib.is_windows(): + if not self.env.machines.build.is_windows(): return args converted = [] for arg in args: @@ -948,7 +948,7 @@ class PkgConfigDependency(ExternalDependency): return None except PermissionError: msg = 'Found pkg-config {!r} but didn\'t have permissions to run it.'.format(' '.join(pkgbin.get_command())) - if not mesonlib.is_windows(): + if not self.env.machines.build.is_windows(): msg += '\n\nOn Unix-like systems this is often caused by scripts that are not executable.' mlog.warning(msg) return None @@ -979,7 +979,7 @@ class PkgConfigDependency(ExternalDependency): # Darwin uses absolute paths where possible; since the libtool files never # contain absolute paths, use the libdir field - if mesonlib.is_osx(): + if self.env.machines[self.for_machine].is_darwin(): dlbasename = os.path.basename(dlname) libdir = self.extract_libdir_field(la_file) if libdir is None: @@ -1530,7 +1530,7 @@ class CMakeDependency(ExternalDependency): libraries += [j] elif os.path.isabs(j) and os.path.exists(j): libraries += [j] - elif mesonlib.is_windows() and reg_is_maybe_bare_lib.match(j): + elif self.env.machines.build.is_windows() and reg_is_maybe_bare_lib.match(j): # On Windows, CMake library dependencies can be passed as bare library names, # e.g. 'version' should translate into 'version.lib'. CMake brute-forces a # combination of prefix/suffix combinations to find the right library, however @@ -2504,7 +2504,7 @@ def _build_external_dependency_list(name: str, env: Environment, for_machine: Ma # If it's explicitly requested, use the Extraframework detection method (only) if 'extraframework' == kwargs.get('method', ''): # On OSX, also try framework dependency detector - if mesonlib.is_osx(): + if env.machines[for_machine].is_darwin(): candidates.append(functools.partial(ExtraFrameworkDependency, name, env, kwargs)) return candidates @@ -2513,7 +2513,7 @@ def _build_external_dependency_list(name: str, env: Environment, for_machine: Ma candidates.append(functools.partial(PkgConfigDependency, name, env, kwargs)) # On OSX, also try framework dependency detector - if mesonlib.is_osx(): + if env.machines[for_machine].is_darwin(): candidates.append(functools.partial(ExtraFrameworkDependency, name, env, kwargs)) # Only use CMake as a last resort, since it might not work 100% (see #6113) |