aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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")