From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-08-05 03:45:41
On Thursday 04 August 2005 20:12, David Abrahams wrote:
> Vladimir Prus <ghost_at_[hidden]> writes:
> > On Thursday 04 August 2005 12:06, Markus Schöpflin wrote:
> >> David Abrahams wrote:
> >> > Markus Schöpflin <markus.schoepflin_at_[hidden]> writes:
> >> >>To my big surprise, I just discovered that defines are somehow not
> >> >>propagated to dependencies, when using bbv1.
> >> >
> >> > Right. That's the way free features work.
> >> > Feature, not bug ;-)
> >> Thought so. But how am I supposed to build a full project where a define
> >> is propagated to everything built? If you're asking for a use case:
> >> build boost with -DBOOST_DETECT_OUTDATED_WORKAROUNDS.
> > Excellent question ;-) Maybe building from top-level will help?
> bjam define=BOOST_DETECT_OUTDATED_WORKAROUNDS
> should work. That puts it in the global build request.
Hmm... this is V2 syntax, and in V2 it doesn't. All "directly requested
targets", that is targets in the current Jamfile and in Jamfiles referred
with "build-project" will be built with that define, but libraries indirectly
used by those targets won't get the define.
> > Anyway, maybe we should reconsider our position and propagate <define>
> > features to dependencies? After all, if <define> has no effect on
> > dependencies, then it's harmless, and if it has some effect on
> > dependency, maybe we should be building with the same value anyway.
> I'm hesitant at best.
I'm not 100% sure either.
-- 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