From: Sylvain Le Gall <sylvain@le-gall.net>
To: Anastasia Gornostaeva <ermine@ermine.pp.ru>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Re: oasis
Date: Mon, 29 Nov 2010 21:52:20 +0100 [thread overview]
Message-ID: <20101129205220.GB5831@yocto.gallu.homelinux.org> (raw)
In-Reply-To: <20101129194622.GA41946@ermine.home>
Hello,
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 setup.data 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).
Example:
BuildDepends:
freetype2(pkg-config, header(freetype/freetype.h), lib(freetype), >= 2.0.4),
oUnit
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
headers/libs.
> > Here is a new proposal about this:
> > - use a PostConfigureCommand to invoke a shell script freetype2.sh
> > - in freetype2.sh invoke freetype-config and output flags in setup.data
> > using "echo 'freetype2_cflags = "$output"' >> setup.data' and
> > "echo 'freetype2_libs = "$output"' >> setup.data'
> > - add in _tags a "src/toto.cma: pkg_config_freetype2"
> > - add in myocamlbuild.ml 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 setup.data and var_get data from it
> to be public. Right now I attempt to play with your code in myocamlbuild.ml
> 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.
Cheers
Sylvain Le Gall
next prev parent reply other threads:[~2010-11-29 20:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-26 18:38 oasis Anastasia Gornostaeva
2010-11-27 10:20 ` oasis Sylvain Le Gall
2010-11-27 13:10 ` [Caml-list] oasis Anastasia Gornostaeva
2010-11-28 17:17 ` oasis Sylvain Le Gall
2010-11-29 19:46 ` [Caml-list] oasis Anastasia Gornostaeva
2010-11-29 20:52 ` Sylvain Le Gall [this message]
2010-11-29 21:19 ` Anastasia Gornostaeva
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101129205220.GB5831@yocto.gallu.homelinux.org \
--to=sylvain@le-gall.net \
--cc=caml-list@inria.fr \
--cc=ermine@ermine.pp.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox