Boost logo

Boost-Build :

From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2004-12-16 06:13:38

Vladimir Prus wrote:

> This is by design. In general, we don't know if 'libfoo' public headers
> include headers from some_external_lib. If they do, we need to propagate
> usage requirements. If they don't, we don't need.

But this is exactly what usage requirements are about: they are
requirements that are propagated, right ? So IIUC they are currently
only propagated to their _direct_ dependents ?

> You can achieve the desired effect by:
> lib libfoo : foo.cpp foo_dependencies : : : <use>foo_dependencies ;

But if I now also have :

lib libbar : bar.cpp libfoo ;
exe app : app.cpp libbar ;

the usage-requirements are only propagated until libbar but not until
'app'. Thus the include-path when compiling bar will not be influenced
by the usage-requirements of foo_dependencies ?

> OTOH, I can't see any case where propagating usage requirements all the way up
> will hurt, so maybe it's time to revise the behaviour. Opinions?

I definitly think it would be better to not only propagate
usage-requirements to the direct dependents but also to the indirect
dependents (i.e. dependents of dependents and so forth).



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