aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2020-01-09 18:03:58 -0500
committerXavier Claessens <xclaesse@gmail.com>2020-01-09 22:08:03 -0500
commit71bbcc76696e303dfe184ad57e76387a322e8f43 (patch)
tree1feff77e3adf321ed01d1fb167c10d75556f5d4a
parentff822990d1af6ff6c6f7ae3f2efa9012d4b14bf9 (diff)
downloadmeson-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.py7
-rwxr-xr-xrun_unittests.py6
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")