From a82c5450577227c7d93ad2ee54c4fddf59199045 Mon Sep 17 00:00:00 2001 From: Corentin Noël Date: Fri, 27 Jun 2025 22:44:39 +0200 Subject: 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). --- mesonbuild/modules/pkgconfig.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'mesonbuild') 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 ' -- cgit v1.2.3