Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2002-11-11 15:50:47


Vladimir Prus <ghost_at_[hidden]> writes:

> Vladimir Prus wrote:
>> I'm about to implement the V2 version of "flags" rule,
>
> Partly implemented, see toolset.jam. However, it would be nice if
> somebody takes this over. Dave, do you have anything in your V2 task
> pipeline?

Unfortunately, I still have to work on this request of yours:

There are two options.

1. Define a new type with a new generator, which will change the
suffix.
2. Define a new type with a new suffix.

The difference is that in second variant the build system should

1. Notice that there are no generators for PYTHON-EXTENSION but that
type is derived from SHARED-LIB
2. Run generators for SHARED-LIB
3. Change type on generated targets to PYTHON-EXTENSION

In the first case, steps 2 and 3 must be done manually. Can you try to
implement the variant 2?

Which I will try to do today.

> Basically, there are three missing bits:
>
> 1. Using
>
> flags gcc {some var} ...
>
> to catch all rules in "gcc" module is not supported.

Looking at your implementation, I'm a little nervous about dumping all
of those .flags definitions into the toolset.jam namespace. The way it
worked in v1 was a hack; It really seems like the best place for these
things would be on the Boost.Build target object (whatever we're
calling that, as opposed to the Jam target object where they end up
eventually). So "set-target-variables" really ought to be part of the
method which creates Jam targets from Boost.Build targets.

> 2. If there are any dependency property

Ach! I really need a glossary. I keep forgetting what the various
terms mean. boost_build_v2.html just says "do we need it?"

> , then by the time
> that property arrives to toolset.set-target-variables, then
> value of the property is the instance of 'virtual-target' class.

The value of the property is a class instance? I'm quite confused by
that notion.

> When setting the value of variable, it's is necessary to call
> 'actualize' on that instance, like I do in gcc.jam, line 53.

Oh, you mean something different by "dependency property" than the way
we've used it before, don't you?

-- 
David Abrahams
dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution
 

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