From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-09-01 01:12:30
David Abrahams wrote:
> > 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.
> I think implementing this behavior now is an example of "giving away
> the store"; we should probably wait until users ask for a solution.
> Features are easy to add and hard to take away, and may (as in this
> case) be very costly in terms of complexity.
Please feel free to remove this feature for now. It would be best if the
change is made with a single commit that touches nothing else, so that
we can use the diff if/when this behaviour should be implemented again.
> Ultimately, I also believe property-adjuster is the wrong way to solve
> that problem, if it does need to be solved. Ali was right when he
> suggested that it is important to be able to tag specific instances of
> properties for propagation in either direction (to dependents or to
> dependencies). The simple solution would tag all free features in the
> build-request for propagation to dependencies.
I don't think we can't propagate free features. We don't remember with what
values of free features a given object file was built. The result is that we
can't request "main target foo built with define=BAR", since we don't know
about define=BAR. Half of object might be already built with that define, and
another without, and we can't tell. And what if "define=BAR" changes size of
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