Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-03-10 03:28:51


On Wednesday 01 March 2006 18:43, Daniel Einspanjer wrote:

> Why do some rules need ( properties * ) as a parameter instead of (
> properties ) ?
> I assume that if the parameter is ( properties * ) then the [
> feature.get-values <customer> : $(properties) ] form must be used to
> extract something from it whereas if the parameter is just ( properties )
> then [ $(properties).get <customer> ] is the right way to extract a value.
> Is this a correct understanding?

Yes, that's right.

> I wrote this rule to be used in a <tag> call and I based it almost exactly
> off of the test in tag.py.
> rule make_customer_branded_name ( base_name : type ? : properties )
> {
> local cust_name = [ $(properties).get <customer> ] ;
> return [ virtual-target.add-prefix-and-suffix
> $(base_name)-$(cust_name) : $(type) : $(properties) ] ;
> }
>
> Both this rule and the conditional rule are invoked in the same manner, in
> the same requirements section of a target. What controls the parameters
> passed in to them?

Unfortunately, there's no clear rule, and this depends more on internal logic
than any user-visible logic.

I hope to get this cleared up, though, see:

    https://zigzag.cs.msu.su/boost.build/ticket/71

- 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