diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2023-08-16 08:50:34 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-09-18 13:51:27 -0400 |
commit | 0eae4e0936181b7f89d73fcb15d752cdf1bea05a (patch) | |
tree | 33bc34e6570acda06e42645339b0cd9b3d46cad7 | |
parent | 2a6245e6b3079f5775ca6fb3695d3cbe8cc1932e (diff) | |
download | meson-0eae4e0936181b7f89d73fcb15d752cdf1bea05a.zip meson-0eae4e0936181b7f89d73fcb15d752cdf1bea05a.tar.gz meson-0eae4e0936181b7f89d73fcb15d752cdf1bea05a.tar.bz2 |
pkgconfig: Restore logging of pkg-config version
While at it, make more methods private by storing the version found on
the instance. That avoids having to call check_pkgconfig() as static
method from unittests.
-rw-r--r-- | mesonbuild/dependencies/pkgconfig.py | 26 | ||||
-rw-r--r-- | unittests/linuxliketests.py | 2 |
2 files changed, 13 insertions, 15 deletions
diff --git a/mesonbuild/dependencies/pkgconfig.py b/mesonbuild/dependencies/pkgconfig.py index d6f4286..ab6896e 100644 --- a/mesonbuild/dependencies/pkgconfig.py +++ b/mesonbuild/dependencies/pkgconfig.py @@ -92,11 +92,9 @@ class PkgConfigCLI(PkgConfigInterface): def __init__(self, env: Environment, for_machine: MachineChoice, silent: bool) -> None: super().__init__(env, for_machine) - # Store a copy of the pkg-config path on the object itself so it is - # stored in the pickled coredata and recovered. - self.pkgbin = self._detect_pkgbin(env, for_machine) + self._detect_pkgbin() if self.pkgbin and not silent: - mlog.log('Found pkg-config:', mlog.green('YES'), mlog.blue(self.pkgbin.get_path())) + mlog.log('Found pkg-config:', mlog.green('YES'), mlog.bold(f'({self.pkgbin.get_path()})'), mlog.blue(self.pkgbin_version)) def found(self) -> bool: return bool(self.pkgbin) @@ -177,18 +175,18 @@ class PkgConfigCLI(PkgConfigInterface): # output using shlex.split rather than mesonlib.split_args return shlex.split(cmd) - @staticmethod - def _detect_pkgbin(env: Environment, for_machine: MachineChoice) -> T.Optional[ExternalProgram]: + def _detect_pkgbin(self) -> None: for potential_pkgbin in find_external_program( - env, for_machine, 'pkgconfig', 'Pkg-config', - env.default_pkgconfig, allow_default_for_cross=False): - version_if_ok = PkgConfigCLI.check_pkgconfig(env, potential_pkgbin) + self.env, self.for_machine, 'pkgconfig', 'Pkg-config', + self.env.default_pkgconfig, allow_default_for_cross=False): + version_if_ok = self._check_pkgconfig(potential_pkgbin) if version_if_ok: - return potential_pkgbin - return None + self.pkgbin = potential_pkgbin + self.pkgbin_version = version_if_ok + return + self.pkgbin = None - @staticmethod - def check_pkgconfig(env: Environment, pkgbin: ExternalProgram) -> T.Optional[str]: + def _check_pkgconfig(self, pkgbin: ExternalProgram) -> T.Optional[str]: if not pkgbin.found(): mlog.log(f'Did not find pkg-config by name {pkgbin.name!r}') return None @@ -207,7 +205,7 @@ class PkgConfigCLI(PkgConfigInterface): return None except PermissionError: msg = f'Found pkg-config {command_as_string!r} but didn\'t have permissions to run it.' - if not env.machines.build.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 diff --git a/unittests/linuxliketests.py b/unittests/linuxliketests.py index cbce522..8760fae 100644 --- a/unittests/linuxliketests.py +++ b/unittests/linuxliketests.py @@ -174,7 +174,7 @@ class LinuxlikeTests(BasePlatformTests): self.assertEqual(libhello_nolib.get_variable(pkgconfig='foo'), 'bar') self.assertEqual(libhello_nolib.get_variable(pkgconfig='prefix'), self.prefix) impl = libhello_nolib.pkgconfig - if not isinstance(impl, PkgConfigCLI) or version_compare(PkgConfigCLI.check_pkgconfig(env, impl.pkgbin),">=0.29.1"): + if not isinstance(impl, PkgConfigCLI) or version_compare(impl.pkgbin_version, ">=0.29.1"): self.assertEqual(libhello_nolib.get_variable(pkgconfig='escaped_var'), r'hello\ world') self.assertEqual(libhello_nolib.get_variable(pkgconfig='unescaped_var'), 'hello world') |