On 22/06/2013 14:50, Uli Schlachter wrote:
On 22.06.2013 14:44, Quentin Glidic wrote:
And that is exactly the point of Requires.private: provide include
directories -I in CFLAGS without -l in LIBS while Requires add
both.

No, it isn't. Requires.private is about things needed for static
linking. Let me quote "man pkg-config":

Requires.private: A list of packages required by this package. The
difference from  Requires  is  that the  packages  listed  under
Requires.private are not taken into account when a flag list is
computed for dynamically linked executable  (i.e.,  when  --static
was  not specified).   In  the  situation  where  each  .pc  file
corresponds  to a library, Requires.private shall be used
exclusively to specify the dependencies  between  the libraries.

So “Requires.private shall be used exclusively to specify the
dependencies between the libraries” and this is the case here.

From http://people.freedesktop.org/~dbn/pkg-config-guide.html I quote:
“Cflags: The compiler flags specific to this package and any required libraries that don't support pkg-config. If the required libraries support pkg-config, they should be added to Requires or Requires.private.”

And with a simple test:

$ tail test1.pc test2.pc
==> test1.pc <==
Cflags: -I/tmp
Libs: -ltest1

==> test2.pc <==
Requires.private: test1

$ pkg-config --cflags --libs test1
-I/tmp -ltest1
$ pkg-config --cflags --libs test2
-I/tmp
$ pkg-config --cflags --libs --static test1
-I/tmp -ltest1
$ pkg-config --cflags --libs --static test2
-I/tmp -ltest1


I think the result is pretty clear.


--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to