aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-05-01 17:54:54 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-05-02 11:46:47 +0000
commitbadbfa125ca1ceb1d159d0a336c161bf0a8a3b6f (patch)
tree7d0fa7270dfe514bf9cda90f511f652458576289 /mesonbuild/build.py
parent2b5766980b960d0de6b142fe4d266be88f751b77 (diff)
downloadmeson-badbfa125ca1ceb1d159d0a336c161bf0a8a3b6f.zip
meson-badbfa125ca1ceb1d159d0a336c161bf0a8a3b6f.tar.gz
meson-badbfa125ca1ceb1d159d0a336c161bf0a8a3b6f.tar.bz2
pkgconfig: Don't expose internal libraries in .pc files
Libraries that have been linked with link_whole: are internal implementation details and should never be exposed to the outside world in either Libs: or Libs.private: Closes https://github.com/mesonbuild/meson/issues/3509
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 3d531d1..a2d024a 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -817,16 +817,22 @@ This will become a hard error in a future Meson release.''')
def get_extra_args(self, language):
return self.extra_args.get(language, [])
- def get_dependencies(self, exclude=None):
+ def get_dependencies(self, exclude=None, internal=True):
transitive_deps = []
if exclude is None:
exclude = []
- for t in itertools.chain(self.link_targets, self.link_whole_targets):
+ if internal:
+ link_targets = itertools.chain(self.link_targets, self.link_whole_targets)
+ else:
+ # We don't want the 'internal' libraries when generating the
+ # `Libs:` and `Libs.private:` lists in pkg-config files.
+ link_targets = self.link_targets
+ for t in link_targets:
if t in transitive_deps or t in exclude:
continue
transitive_deps.append(t)
if isinstance(t, StaticLibrary):
- transitive_deps += t.get_dependencies(transitive_deps + exclude)
+ transitive_deps += t.get_dependencies(transitive_deps + exclude, internal)
return transitive_deps
def get_source_subdir(self):