diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-05-01 17:54:54 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-05-02 04:49:26 +0530 |
commit | 58bbab997c1ac353077d3572cac56df0a561c4da (patch) | |
tree | 86dfe244c63b0e24a696b1559455574f0f7bb914 /mesonbuild/build.py | |
parent | 8c6e6e19cb74650918c63224032fe25a083b287a (diff) | |
download | meson-fixpkgconfiggen.tar.gz |
pkgconfig: Don't expose internal libraries in .pc filesfixpkgconfiggen
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.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 352f85723..a3d6a7049 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): |