Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-03-06 02:33:27


David Abrahams wrote:

> >>Somehow I missed the original discussion of this functionality. Is
> >>the point to be able to define features which change the build
> >>properties of the target? Or is it to change other aspects of the
> >>target, like the target filename, which have not been, up till now,
> >>features in the Boost.Build sense?
> >
> > Either, the point is to be able to define changes to targets orthagonally
> > to toolsets. I don't want to write how to name files with a version
> > number for every toolset, as is the case in V1.
> >
> > Oh, and there wasn't much original discussion :-)
> >
> >>The only example I saw was the version modifier; do you have any
> >>other use-cases?
> >
> > On other I can immediately think of is to more cleanly, from a user UI
> > perspective, support adding features like Python module support. That is,
> > instead of having the $(PYTHON_*) vars like in V1, or the extra target
> > for module, you can instead have a <python-module> feature with a
> > modifier that inserts all the needed includes, changes the extension,
> > etc. without having to touch the toolsets themselves.
>
> How is this different from what we do for STLPort support?

Hmm, I somehow missed the original Rene's post or did not read property.
Looks like the last suggestion indeed duplicates the way STLPort work.

> If we really do need modifiers, can toolsets just be a special case
> of modifiers? It seems like there are too many ways of doing similar
> things.

As I recall, the motivation for "active" features, with associated rules, like
<stdlib>stlport which add <include>s was to avoid generators, which were
considered too heavyweight mechanism for such simple things. Of course,
speculation about how fast generators will be in 2.0 release is risky, but
should we really use generators to add properties, where active features work
just fine.

This still leaves some use cases for modifiers
1. <version>
2. Adding "lib" to library sources when appropriate
3. Staging, where modifier will cause relinking to a different
location.

Maybe, Rene knows more.

- Volodya

 


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