Rex Dieter wrote on Thu, Aug 02, 2018 at 08:37:34AM -0500:
> Wearing a lib developer hat, I don't see how you can make a
.pc that
> doesn't overlink if you provide something a bit entangled with other
> libs.
> The problem is that if your headers use any sub-lib type you need to add
> that lib in Requires: so that --cflags will pull that lib's include
> path;
That's what Requires.private is for
I'm aware of Requires.private, but that's not how I understand things
currently work.
man pc(5) says this for Requires and Requires.private:
---
Requires
Required dependencies that must be met for the package to be usable.
All dependencies must be satisfied or the pkg-config implementation must
not use the package. (optional; dependency list)
Requires.private
Required dependencies that must be met for the package to be usable for
static linking. All dependencies must be satisfied or the pkg-config
implementation must not use the package for static linking. (optional;
dependency list)
---
I'm not sure I see how that would be related to what is used for
compiling and what is used for linking.
In practice, `pkg-config --cflags foo` will only fetch cflags for
dependencies listed in Requires, not Requires.private
I haven't tested how autotools/libtool handle this but I doubt it's
much different than invoking pkg-config manually, and at least meson
will only add cflags for dependencies put in 'Requires' as I would have
expected.
Am I missing something?
--
Dominique Martinet