diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2020-01-09 18:03:58 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2020-01-09 22:08:03 -0500 |
commit | 71bbcc76696e303dfe184ad57e76387a322e8f43 (patch) | |
tree | 1feff77e3adf321ed01d1fb167c10d75556f5d4a | |
parent | ff822990d1af6ff6c6f7ae3f2efa9012d4b14bf9 (diff) | |
download | meson-71bbcc76696e303dfe184ad57e76387a322e8f43.zip meson-71bbcc76696e303dfe184ad57e76387a322e8f43.tar.gz meson-71bbcc76696e303dfe184ad57e76387a322e8f43.tar.bz2 |
pkgconfig module: add FeatureNew for requires: dependency('foo')
Introduced in https://github.com/mesonbuild/meson/pull/3131
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 7 | ||||
-rwxr-xr-x | run_unittests.py | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index a37dd4f..dc45a5b 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -26,7 +26,8 @@ from ..interpreterbase import permittedKwargs, FeatureNew, FeatureNewKwargs already_warned_objs = set() class DependenciesHelper: - def __init__(self, name): + def __init__(self, state, name): + self.state = state self.name = name self.pub_libs = [] self.pub_reqs = [] @@ -73,6 +74,8 @@ class DependenciesHelper: '''Returns string names of requirements''' processed_reqs = [] for obj in mesonlib.listify(reqs, unholder=True): + if not isinstance(obj, str): + FeatureNew('pkgconfig.generate requirement from non-string object', '0.46.0').use(self.state.subproject) if hasattr(obj, 'generated_pc'): self._check_generated_pc_deprecation(obj) processed_reqs.append(obj.generated_pc) @@ -395,7 +398,7 @@ class PkgConfigModule(ExtensionModule): if mainlib: libraries = [mainlib] + libraries - deps = DependenciesHelper(filebase) + deps = DependenciesHelper(state, filebase) deps.add_pub_libs(libraries) deps.add_priv_libs(kwargs.get('libraries_private', [])) deps.add_pub_reqs(kwargs.get('requires', [])) diff --git a/run_unittests.py b/run_unittests.py index 015167b..898f05e 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -707,18 +707,20 @@ class InternalTests(unittest.TestCase): class Mock: pass + dummystate = Mock() + dummystate.subproject = 'dummy' mock = Mock() mock.pcdep = Mock() mock.pcdep.name = "some_name" mock.version_reqs = [] # pkgconfig dependency as lib - deps = mesonbuild.modules.pkgconfig.DependenciesHelper("thislib") + deps = mesonbuild.modules.pkgconfig.DependenciesHelper(dummystate, "thislib") deps.add_pub_libs([mock]) self.assertEqual(deps.format_reqs(deps.pub_reqs), "some_name") # pkgconfig dependency as requires - deps = mesonbuild.modules.pkgconfig.DependenciesHelper("thislib") + deps = mesonbuild.modules.pkgconfig.DependenciesHelper(dummystate, "thislib") deps.add_pub_reqs([mock]) self.assertEqual(deps.format_reqs(deps.pub_reqs), "some_name") |