From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-07-06 10:22:31
On Monday 04 July 2005 21:12, David Abrahams wrote:
> Vladimir Prus <ghost_at_[hidden]> writes:
> > I think the situation is that Jurgen has <use>/boost
> > somewhere. That, in turns builds every single target in Boost, and
> > propagates usages requirements back to the dependent. Including that
> > <async-exceptions> thing.
> Why is that an appropriate behavior? For what use case would it make
Well, if you write:
exe a : a.cpp /boost ;
then all boost libraries will be built and linked into your application. If
exe a : a.cpp : <use>/boost ;
then it's taken as request to take all targets that /boost refers to -- that's
all targets of boost -- and add their usage requirements.
Use case -- suppose that some Boost library also requires additional include
> > The right solution is a combination of:
> > 1. <use>-in only the needed libraries
> > 2. Add "alias headers ; " to top-level Boost Jamfile.v2, and
> > <use>/boost//headers. This way, you'll get <include> usage requirements
> > from top-level Jamfile.v2, and nothing else.
> Maybe; I still have a hard time understanding that using a project
> means using every library in it.
Because 'build-project a' in a Jamfile means that whenever that Jamfile is
requested from somewhere, then 'a' will also be built and targets from it
returned. Do you suggest that 'build-project a' should only be taken in
effect when build of Jamfile is request from the command line?
-- Vladimir Prus http://vladimir_prus.blogspot.com Boost.Build V2: http://boost.org/boost-build2
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk