Boost logo

Boost-Build :

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
> sense?

Well, if you write:

exe a : a.cpp /boost ;

then all boost libraries will be built and linked into your application. If
you write:

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?

- Volodya

Vladimir Prus
Boost.Build V2:

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at