From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-08-29 03:10:54
David Abrahams wrote:
> Christopher Currie <Christopher_at_[hidden]> writes:
> >> I think the problem here is that the user doesn't have a way to say,
> >> "this thing is really just a dependency of some other main target;
> >> don't build it by default".
> >> dependency lib B : b.cpp ;
> >> or
> >> lib B : b.cpp ;
> >> don't-build B ;
> >> or some such thing.
> > I believe Milestone 6 has a rule, 'explicit', that does what you want.
> > http://boost.sourceforge.net/boost-build2/boost_build_v2.html#explicit_ru
> Great! But the contentious issue will still be: "can we *please* get
> rid of property-adjuster?"
The problem is that "explicit" provides a different solution that
property-adjuster. Back you your example:
exe A : <library>B c.cpp : <rtti>off ;
lib B : b.cpp ;
If I run "bjam define=FOO", I expect everything to be built with -DFOO. I
don't expect two versions of "B" to be created. If "B" is explicit and we
have no property adjuster, only one version is created. But that version is
not compiled with -DFOO. "explicit", therefore, eliminates build of the
library that we want to use.
The problem, you know, if that while I find semantic of "bjam define=FOO"
quite clear from the user POV, I don't know what users say and if they care
at all. Maybe, this "smart" behaviour is really not needed, but I can readily
imagine users writing emails saying that define=FOO has no effect and
Boost.Build is buggy.
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