[opam-devel] [MirageOS-devel] Managing $PKG_CONFIG_PATH in opam

Anil Madhavapeddy anil at recoil.org
Wed Sep 16 14:59:46 BST 2015


On 15 Sep 2015, at 12:50, Tim Cuthbertson <tim at gfxmonk.net> wrote:
> 
> On Tue, Sep 15, 2015 at 12:08 PM, Louis Gesbert
> <louis.gesbert at ocamlpro.com> wrote:
>> 
>>> I think we could definitely use an answer to pkg-config management,
>>> but not one that's entwined into the core of OPAM itself. If something
>>> could be figured out that fits in with the compilers-as-packages
>>> feature so that packages could extend the environment, this would
>>> make cross-OS portability much easier.
>> 
>> I don't want to promise too much, as the design is mostly unwritten yet, but that's part of my plans.
>> Note that compiler descriptions already have an `env:` field:
>> 
>>    env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
>> 
>> that propagates to the user environment (i.e. `opam config env`)
>> 
>> We also already have some specific operators to dictate environment variable updates, documented at http://opam.ocaml.org/doc/Manual.html#Environmentupdates
> 
> I'm not quite clear on what's done here and what remains - it sounds
> like this already works for compilers, and you're considering adding
> it for packages too? If that's true, then that sounds great, as then
> all packages providing .pc files could depend on some `pkgconfig`
> opampackage which defines:
> 
> env: [[PKG_CONFIG_PATH += "%{lib}%"]]
> 
> And hopefully some way of dealing with the default pkg-config, for
> when $PKG_CONFIG_PATH is not set. It sounds like := will be able to
> cover that, but the exact syntax is not obvious to me from those docs.

This sounds about right to me.  The feature is not fully documented
at the moment, but I seem to remember some syntax for setting the variable
if it wasn't set (in addition to the additive one).

The main blocker is probably the OPAM 1.2 -> 1.1 rewrite scripts, since
this almost certainly wasn't present in OPAM 1.1.  Yet another reason
to kick off the deprecation of the OPAM 1.1 repository...

-anil


More information about the opam-devel mailing list