Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-15 06:25:33


Vladimir Prus <ghost_at_[hidden]> writes:

> David Abrahams wrote:
>> Vladimir Prus <ghost_at_[hidden]> writes:
>>
>>
>>>I've tried to use g++3.2 with some of my code which uses Boost.Build V2,
>>>and run in a problem.
> [...]
>>>/home/ghost/Work/boost/tools/build/examples-v2/../new/property.jam:223: in
>>>validate from module property
>>>error: Invalid property '<toolset-version>3.2': value '3.2' is not valid for
>>>feature'toolset-version'.
>>>
>>>And it's caused by the line 34 of gcc.jam: where I try to adjust the name
>>>for particlar compiler version.
>>>
>>>I wonder if the feature module should be changed to recognize
>>><toolset-version> as valid feature...
>>
>>
>> Mostly done.
>
> Thanks.
>
> > However, see changes to gcc.jam
>
> The remaining problem is that the flags rule is called with <toolset>gcc-3.2
> and records that property as condition. But set-target-variables is called
> with <toolset>gcc <toolset-version>3.2
>
> I fixed that by expanding subfeatures in condition. After that, I get:
>
> $bjam gcc-3.2
> ...found 9 targets...
> ...updating 5 targets...
> MkDir1 bin
> MkDir1 bin/gcc-3.2
> MkDir1 bin/gcc-3.2/debug
> gcc.compile bin/gcc-3.2/debug/hello.o
> hello.cpp:8:2: warning: no newline at end of file
> gcc.link bin/gcc-3.2/debug/hello
>
> Isn't it the coolness?

It *is* the coolness. However, I'm a bit surprised it worked, since
the whole reason I changed gcc.jam was that it was still reporting
<toolset-version> as invalid.

> However, we've one problem still. Assume, that gcc-3.2 is never declared.
> If you run
>
> bjam gcc-3.2
>
> in examples-v2/hello, you won't be told that property is invalid, but that
> ./hello cannot be build. Adding "--debug-generators" to the command line
> shows that <toolset>gcc-3.2 is in build request. I guess the error
> should be reported after calling build-request.expand, which call is on
> build-system.jam, line 63.
>
> Dave, what do you think?

I'm inclined to think that build-request.expand or one of the rules it
calls ought to be validating properties as it goes along.

-- 
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