Boost logo

Boost-Build :

Subject: [Boost-build] default value for composite feature always used
From: Nogradi, Chris (Chris.Nogradi_at_[hidden])
Date: 2012-04-09 11:17:29


Hello,

I am doing the following:

import feature ;

feature.feature test : E A B C D : composite ;
feature.compose <test>A : <define>_TEST=0 ;
feature.compose <test>B : <define>_TEST=1 ;
feature.compose <test>C : <define>_TEST=2 ;
feature.compose <test>D : <define>_TEST=3 ;
feature.compose <test>E : <define>_TEST=4 ;

exe main : main.c : <test>A ;

And for some reason, _TEST=4 is always set even though I am specifying that <test>A (_TEST=0 is also set) should be used. I am obviously misunderstanding the documentation regarding the default value of test since I would have expected it to not be used in this case. Can someone explain why this is happening and how I can have a default value set when <test> is not specified but when it is specified, have it use the specified value not the default?

$ boost-build/bin/bjam.exe -d2 -a
...found 11 targets...
...updating 3 targets...

file bin\msvc-8.0\debug\test-A\threading-multi\main.obj.rsp
"main.c" -Fo"bin\msvc-8.0\debug\test-A\threading-multi\main.obj" -TC /Z7 /Od /Ob0 /W3 /GR /MDd /Zc:forScope /Zc:wchar_t -c
-D_TEST=0
-D_TEST=4
compile-c-c++ bin\msvc-8.0\debug\test-A\threading-multi\main.obj

    call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul
cl /Zm800 -nologo @"bin\msvc-8.0\debug\test-A\threading-multi\main.obj.rsp"

main.c

file bin\msvc-8.0\debug\test-A\threading-multi\main.exe.rsp

"bin\msvc-8.0\debug\test-A\threading-multi\main.obj"
msvc.link bin\msvc-8.0\debug\test-A\threading-multi\main.exe

        call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul
link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console /out:"bin\msvc-8.0\debug\test-A\threading-multi\main.exe" @"bin\msvc-8.0\debug\test-A\threading-multi\main.exe.rsp"
        if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%

msvc.manifest bin\msvc-8.0\debug\test-A\threading-multi\main.exe

        if exist "bin\msvc-8.0\debug\test-A\threading-multi\main.exe.manifest" (
            call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul
mt -nologo -manifest "bin\msvc-8.0\debug\test-A\threading-multi\main.exe.manifest" "-outputresource:bin\msvc-8.0\debug\test-A\threading-multi\main.exe;1"
        )

...updated 3 targets...

Thanks,

Chris

________________________________
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of this e-mail or any attachment is prohibited. If you have received this e-mail in error, please contact the sender and delete all copies.

Thank you for your cooperation.



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