diff options
| author | Corentin Noël <corentin.noel@collabora.com> | 2025-06-27 22:44:39 +0200 |
|---|---|---|
| committer | Jussi Pakkanen <jussi.pakkanen@mailbox.org> | 2025-08-01 13:35:14 +0300 |
| commit | a82c5450577227c7d93ad2ee54c4fddf59199045 (patch) | |
| tree | 8a8d10e9b222d43e51a7f3eb0f0d3ed51c693448 /mesonbuild/modules/pkgconfig.py | |
| parent | a0c8af21ec5a70259998b5fa6b95e04078f3ce6d (diff) | |
| download | meson-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.py | 8 |
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 ' |
