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 acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk