diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/build.py | 12 | ||||
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 4 |
2 files changed, 11 insertions, 5 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): diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 419a14c..365d3cd 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -123,10 +123,10 @@ class DependenciesHelper: if not hasattr(obj, 'generated_pc'): obj.generated_pc = self.name if isinstance(obj, build.StaticLibrary) and public: - self.add_pub_libs(obj.get_dependencies()) + self.add_pub_libs(obj.get_dependencies(internal=False)) self.add_pub_libs(obj.get_external_deps()) else: - self.add_priv_libs(obj.get_dependencies()) + self.add_priv_libs(obj.get_dependencies(internal=False)) self.add_priv_libs(obj.get_external_deps()) elif isinstance(obj, str): processed_libs.append(obj) |