$include_dir="/home/hyper-archives/boost-build/include"; include("$include_dir/msg-header.inc") ?>
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