C++ Logo

sg15

Advanced search

Re: [SG15] RFC: Requirements to consume a prebuilt library from arbitrary build systems

From: Matthew Woehlke <mwoehlke.floss_at_[hidden]>
Date: Fri, 29 Oct 2021 13:31:55 -0400
On 28/10/2021 10.40, Daniel Ruoso via SG15 wrote:
> On Wed, Oct 27, 2021, 22:32 Boris Kolpackov wrote:
>> A build system that wants to support system-installed libraries on Linux
>> will need to support pkg-config. This means that if this effort results in
>> a new format (which I believe where this is heading), such a build system
>> will now need to support both pkg-config and this new format.

People, presumably involved in pkg-config, keep saying that, but it
seems no one wants to do the work. I'm still waiting to see something
using pkg-config that satisfies even CMake's more basic requirements
without jumping through hoops.

Hint: *full path to libraries*.

> pkg-config is a strict subset of what we're talking about here, so it
> should be possible to mechanically convert a new format into a pc file
> (with the subset supported by it) and to generate the file in the new
> format with all the data that could be extracted from the pc file (which
> does mean we need it to support proving only the minimal data that exists
> in the pc file).
>
> I think the outcome is that it's a requirement that it should be trivial to
> convert the information on any new format to and from existing formats.

I think that is doomed to fail. Pkg-config, as people expect it to work,
is a fairly impoverished format (not too surprising considering its
age). Converting *to* pkg-config ought to be do-able. Converting *from*
pkg-config, especially from the sorts of pkg-config files that currently
exist, is a much harder proposition. (For starters, you're doomed if you
don't have access to the package's entire file listing while trying to
perform the conversion.)

-- 
Matthew

Received on 2021-10-29 12:31:47