Boost logo

Boost-Build :

Subject: Re: [Boost-build] Target alternatives - one more time
From: Edward Diener (eldiener_at_[hidden])
Date: 2011-07-15 11:58:49


On 7/14/2011 5:12 PM, Matthew Chambers wrote:
>
>
> On 7/14/2011 3:34 PM, Edward Diener wrote:
>> Given a particular source I want to test if it will compile with a
>> particular option, can someone
>> show me how to set up the jamfile so that I compile for two different
>> toolsets but not for any other
>> toolsets ?
>>
>> As an example suppose I want to compile some_source.cpp with the
>> -std=c++0x for gcc-4.6.0 and
>> gcc-4.5.2, and I also want to compile some_source.cpp with no
>> particular option for all toolsets.
>> How do I do this in a jamfile ?
>>
>
> obj some_source : some_source.cpp ;
> obj some_source : some_source.cpp : <toolset>gcc-4.6.0 :
> <cxxflags>-std=c++0x ;
> obj some_source : some_source.cpp : <toolset>gcc-4.5.2 :
> <cxxflags>-std=c++0x ;
>
> You could also do it all in a rule like:
>
> rule some_source_requirements ( properties * )
> {
> if gcc-4.6.0 gcc-4.5.2 in $(properties:G=) { return <cxxflags>-std=c++0x
> ; }
> }
>
> obj some_source : some_source.cpp :
> <conditional>@some_source_requirements ;

I tried this:

test-suite some_dbg
    :
         [ compile-fail debug_fail_program.cpp
           : <variant>debug
             <cxxflags>-std=c++0x
         ]
    :
    <toolset>gcc
    ;

test-suite some_dbg
    :
         [ compile-fail debug_fail_program.cpp
           : <variant>debug
         ]
    :
    <toolset>msvc
    ;

test-suite some_dbg ;

Only to get a Build error when I tried to invoke it with the toolset
msvc-10.0:

error: No best alternative for ./debug_fail_program
     next alternative: required properties: <variant>debug
         matched
     next alternative: required properties: <variant>debug
         matched

How can I get this to work without having to create some sort of rule ?
This can not be rocket science but I can not understand why Boost Build
is making something that should so easy end up so difficult to do.


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