On Thu, 2018-05-31 at 10:12 -0400, Brad King wrote:
> On 05/25/2018 07:52 PM, Paul Fultz II wrote:
> > What else is missing? 
> 
> The `.pc` format focuses on flat command-line strings that drop much
> of the information used to generate them.  For example, if library
> A depends on library B then the `.pc` file will record the link flags
> 
>    -L/path/to/A/lib -L/path/to/B/lib -lA -lB

No, it would record it as:

Requires: B

It would only record it as `-L/path/to/A/lib -L/path/to/B/lib -lA -lB` if B
didnt support pkg-config. This same problem exists for cmake if the user
doesn't use a separate target for library B.

> 
> 
> Some CMake "find modules" try to extract information from `.pc` files
> by running pkg-config to get command lines.  They inevitably have to
> parse the command lines and manually reconstruct things that could have
> been put in the packaging files in a structured way in the first place.

This is because cmake lacks native support for pkg-config. It only uses the
pkg-config CLI, which works fine for makefiles.

Instead cmake needs to make a target for each `.pc` found. This could be
possible if it used libpkgconf instead.

Even more so, we could support a `cmake_target` variable so .pc files could
specify the cmake target name.

> 
> > extending pkg-config seems like it would help adoption rather then
> > creating a completely new format.
> 
> It would be nice if that would work.  However, most `.pc` files already
> leave out much of the deeper information CMake likes to have.  Even
> if we found a good way to represent that information in `.pc` files
> projects would still need big updates to produce that information.

Projects would need to be updated for cps as well, but it seems a few tweaks
to pkg-config is more likely to be accepted than adding a new file format.

Paul
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to