aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2018-12-03 12:26:05 +0000
committerXavier Claessens <xclaesse@gmail.com>2018-12-03 14:58:43 -0500
commit80ac40b7e724913539a225423cec816a67de5f2d (patch)
tree6080442e437099298173b2dec941fc039fec7a08
parent7ffc26078d672b5c4fafb3ac10d1850aee1ecb7b (diff)
downloadmeson-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.py2
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():