From: David Abrahams (dave_at_[hidden])
Date: 2007-08-05 17:07:53
on Sun Aug 05 2007, Vladimir Prus <ghost-AT-cs.msu.su> wrote:
> I see two solutions:
> 1. Make 'free' features like 'define' and 'cflags' propagated. This
> will have undesirable effect that <define> set on some target
> will propagate to all dependencies.
> 2. Make free features specified on the command like apply to
> all targets in the project located in ".", and any child project.
> The only concern I have about this approach is that it will
> still be impossible to specify define that will apply to all
> compilations. That is, if I have two projects A and B,
> in different directories with separate Jamroots, where A uses
> libraries from B, then:
> bjam define=FOO
> in A won't affect B.
> Anybody can comment on those alternative or propose better ones?
3. Free features on the command line apply globally.
3 is the simplest way to address the problem, and probably matches
most people's expectations. I think 1 is the wrong way. The command
line options are an expedient and blunt instrument for developers who
think they know what they're doing; I think they should be treated
altogether differently from build properties specified in Jamfiles,
which can be carefully tuned.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com
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