> On May 26, 2018, at 5:08 AM, Lectem <lec...@gmail.com 
> <mailto:lec...@gmail.com>> wrote:
> 
>  
> Hi,
> I’ll start by saying that I love the fact we’re now talking about a common 
> representation of packages !
>  
> The reason I say this is that extending pkg-config seems like it would help 
> adoption rather then creating a completely new format. There is already a 
> good portion of open source projects that already support pkg-config, so 
> tweaking them to support more complicated scenarios seems easier than 
> converting everything to a new format.
>  
> I’m not very familiar with pkg-config (working more in the Windows world) so 
> excuse me if I’m wrong.
>  
> From what I remember it is very basic and relies on compiler flags being the 
> same everywhere (ie gcc-like flags),

The flags are only written gcc-like for include paths, defines, library paths. 
Pkg-config(and cmake) converts these flags to the native versions. Outside of 
these flags they are tied to the compiler, which is the same for cmake as well.

> and does not provide any information about things such as ABI, C-runtime 
> Library used (arguably could be represented as a package ?).

Yes, this can be another package that can be added to the `Requires` field.

> As far as I know, it assumes that the libraries are always compiled with the 
> same compiler on the same system, hence has no knowledge of compatibility 
> between compiler versions. 
> As you mentionned, it currently relies on -l for both libraries and linker 
> flags, which would need to be changed.
>  
> so tweaking them to support more complicated scenarios seems easier than 
> converting everything to a new format.
>  
> Wouldn’t that create more confusion ? I fear it’d end up as a python2 python3 
> issue, where both versions look alike but are incompatible.

These changes are all backwards-compatible(that is the current pkg-config files 
will continue to work). Having standard packages to represent different ABI or 
requirements can be supported with the current pkg-config. And, pkg-config 
already supports a `Provides` field(ie `Replaces` field).

Allowing a file instead of -l flag is a minor change. Pkg-config file format 
has not been static and has changed and evolved over the years(like adding the 
private fields or dollar sign escaping).

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