diff options
author | Luca Boccassi <bluca@debian.org> | 2018-12-03 12:26:05 +0000 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2018-12-03 14:58:43 -0500 |
commit | 80ac40b7e724913539a225423cec816a67de5f2d (patch) | |
tree | 6080442e437099298173b2dec941fc039fec7a08 | |
parent | 7ffc26078d672b5c4fafb3ac10d1850aee1ecb7b (diff) | |
download | meson-80ac40b7e724913539a225423cec816a67de5f2d.zip meson-80ac40b7e724913539a225423cec816a67de5f2d.tar.gz meson-80ac40b7e724913539a225423cec816a67de5f2d.tar.bz2 |
pkgconfig: do not generated dependency on itself
If a project generates a single pc file but multiple shared libraries
with dependencies on each other, the generated pc name will be used to
generate a Requires.private dependency, which means the project will
depend on itself. This breaks at least some versions of pkg-config
(0.27 in RHEL7) which cannot handle the recursion and error out.
When adding the dependency using the pc name, check that it's not
on the project itself.
Fixes #4583
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 52285c2..708695a 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -93,7 +93,7 @@ class DependenciesHelper: for d in pcdeps: processed_reqs.append(d.name) self.add_version_reqs(d.name, obj.version_reqs) - elif hasattr(obj, 'generated_pc'): + elif hasattr(obj, 'generated_pc') and obj.generated_pc != self.name: processed_reqs.append(obj.generated_pc) elif isinstance(obj, dependencies.PkgConfigDependency): if obj.found(): |