summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/pkgconfig.py
diff options
context:
space:
mode:
authorCorentin Noël <corentin.noel@collabora.com>2025-06-27 22:44:39 +0200
committerJussi Pakkanen <jussi.pakkanen@mailbox.org>2025-08-01 13:35:14 +0300
commita82c5450577227c7d93ad2ee54c4fddf59199045 (patch)
tree8a8d10e9b222d43e51a7f3eb0f0d3ed51c693448 /mesonbuild/modules/pkgconfig.py
parenta0c8af21ec5a70259998b5fa6b95e04078f3ce6d (diff)
downloadmeson-a82c5450577227c7d93ad2ee54c4fddf59199045.tar.gz
modules/pkgconfig: Resolve dependencies in case of an internal dependency
When giving a dependency object as requires, allow to use the dependency from a subproject (that is an InternalDepdency).
Diffstat (limited to 'mesonbuild/modules/pkgconfig.py')
-rw-r--r--mesonbuild/modules/pkgconfig.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index e3f7a972d..bef14e9ea 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -156,6 +156,14 @@ class DependenciesHelper:
pass
elif isinstance(obj, dependencies.ExternalDependency) and obj.name == 'threads':
pass
+ elif isinstance(obj, dependencies.InternalDependency) and all(lib.get_id() in self.metadata for lib in obj.libraries):
+ # Ensure BothLibraries are resolved:
+ if self.pub_libs and isinstance(self.pub_libs[0], build.StaticLibrary):
+ obj = obj.get_as_static(recursive=True)
+ else:
+ obj = obj.get_as_shared(recursive=True)
+ for lib in obj.libraries:
+ processed_reqs.append(self.metadata[lib.get_id()].filebase)
else:
raise mesonlib.MesonException('requires argument not a string, '
'library with pkgconfig-generated file '