Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2010-11-29 (20:52)
From: Sylvain Le Gall <sylvain@l...>
Subject: Re: [Caml-list] Re: oasis

On Mon, Nov 29, 2010 at 10:46:22PM +0300, Anastasia Gornostaeva wrote:
> On Sun, Nov 28, 2010 at 05:17:35PM +0000, Sylvain Le Gall wrote:
> > My current state about this solution is:
> > - defines BuildDepends: freetype2 (pkg-config), to make clear that there
> >   is a C build-depends
> > - allow to override the defined variable freetype2_cflags and
> >   freetype2_libs. If they are both defined by user, don't even call
> >   pkg-config for this package
> There should be three variants: pkg-config, OS-based userspace policy 
> (/usr/include vs. /usr/local/include) and user-defined one.

I think the pkg-config is the starting point, it also defines the prefix
of the variable that we will use.

For you OS-based detection, I can propose a header(XXX), lib(XXX). This
will be cumulative (i.e. you can define several header and lib).

  freetype2(pkg-config, header(freetype/freetype.h), lib(freetype), >= 2.0.4),

The headers and libs fields are extra methods. If you define
them, we will try to find a set of -Idirs that help to find the
matching headers or a -Ldirs to find the matching libs. 

We will only do a detection using Sys.file_exists (i.e. don't try to
link or anything similar). 

The detection method start with pkg-config and if it fails goes to

> > Here is a new proposal about this:
> > - use a PostConfigureCommand to invoke a shell script
> > - in invoke freetype-config and output flags in
> >   using "echo 'freetype2_cflags = "$output"' >>' and
> >   "echo 'freetype2_libs = "$output"' >>' 
> > - add in _tags a "src/toto.cma: pkg_config_freetype2" 
> > - add in a "tag [pkg_config_freetyp2; compile; ocaml] &
> >   [... (* load the content of freetyp2_cflags *) ... ]"
> > 
> > This is not simple but this is probably what I will do for the support
> > of C libraries in 0.3.0.
> But it is the best solution now and partially works for me.
> And please make the functions that loads and var_get data from it 
> to be public. Right now I attempt to play with your code in 
> and re-use it in my piece at bottom of the file.
> I'm always ready to test/use oasis from darcs when you put there something new.

I not that down, I'll ping you ASAP.

Sylvain Le Gall