Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-05-26 03:33:59

On Thursday 26 May 2005 12:22, Malcolm Cifuentes wrote:
> Hi All,
> if I echo $(var) and receive this:
> object(file-target)@3
> I think it means I have 3 x file-target objects, is this correct?

It means there three instances of file-target class were created, and your var
is the name of the third instance.

> Is there any way I can iterate over each element/object?

Element of what? What are you trying to accomplish?

> I have tried a 'for in loop' which doesn't appear to work.
> for local t in $(var)
> {
> echo "hi" ;
> }
> I was hoping to see "hi" displayed times.

$(var) is a name of a single instance -- it's basically a list of lenth 1.

> given $(var).length returns 1 I am starting to think I've got it
> wrong:)

What's $(var).length ? I don't think file-target class has any method by that

> [ $(var).str ] iterates over all 3 but I'm clueless if I can repeat
> how it does it.

The 'str' of file-target method prints the sources of the target, if any, and
does this with this code:

local action = [ action ] ;
if $(action)
local sources = [ $(action).sources ] ;

for local s in $(sources)

If you want to iterate over source, that's how to do it. If you want something
else, what's that? I don't understand why you'd want to iterate over all
instances of file-target ever created.

- Volodya

Vladimir Prus
Boost.Build V2:

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at