Skip to content

Don't add private dependencies to Requires.private when --default-library=shared #3970

Open
@ximion

Description

Hi!

Since a few releases, Meson unconditionally adds Requires.private libraries to pkg-config .pc files, even if none of the interfaces of these libraries are actually exposed at all in the shared library that is to be installed.
For example, I have a library that uses libxml2 internally, but none if its types are actually exposed and nobody using my library needs to have the development files for libxml2 actually installed on their system.

However, when they now want to link against my library, pkg-config complains with

pkg-config --cflags appstream
Package libxml-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libxml-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libxml-2.0', required by 'appstream', not found

This behavior change broke quite a few things, and the only way I seem to be able to control what ends up in the .pc files is to postprocess it with sed, which seems suboptimal.

Can support for controlling what ends up in Requires.private & Co. be added, please?

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions