[Xcb] [PATCH 0/3] Fix intra-xcb .pc file dependencies automatically

Keith Packard keithp at keithp.com
Wed Feb 12 14:15:43 PST 2014

> However, I don't like the result. composite.xml "<import>"s only xproto and
> xfixes. The dependency on render and shape occur because xfixes depends on
> these. In other words, your tool is including transitive dependencies.

I've patched that by fixing xcb to only #include files for direct
dependencies. The transitive #include set will still include all of
the dependencies, of course. That's the first patch in this
series. This should also lead to a (trivial) compile time improvement
as we we'll process the nested header files fewer times.

This (obviously) requires a separate patch to the xcb proto files,
which I've already sent under separate cover. That patch simply adds
the direct_import field needed by this patch and must be applied
first. "Also track directly imported modules in a separate list"

 [PATCH 1/3] Only #include directly referenced module header files

>  (Also, your tool will (silently) fail with out-of-tree builds, because either
>  the .pc.in or the src/*.h files can't be found. I guess automake runs tests in
>  the build dir, but I am not sure. And I don't care a lot about this issue since
>  the script is already complicated enough).

I've fixed that in this updated patch:

 [PATCH 2/3] Validate .pc file Requires lines

Finally, you'll see that the .pc files require only a few changes now
that they don't include the transitive closure of dependencies

 [PATCH 3/3] Update .pc file Requires lines to express full


More information about the Xcb mailing list