2014-01-13 57 views
0

有沒有一種方法(無需修改源文件)指定我想用例如msvc構建boost,其中包含一組調試中的其他選項和另一個發佈變體?在一些config.jam或甚至更好的命令行?像在boost構建中,如何有條件地設置編譯器選項?

using msvc : : <compileflags>-DRELEASE_DEFINES; - only if variant=release 
using msvc : : <compileflags>-DDEBUG_DEFINES; - only if variant=debug 
using msvc : : <compileflags>-DLL_SPECIFIC_STUFF; - only if link=shared 

我能夠找到一個建議使用命令行像variant =調試/ somefeature = somevalue,但不起作用。

回答

1

好了,經過一些實驗,我能夠讓它工作,通過項目config.jam中,這裏有一個例子:

import option ; 
import toolset ; 

using msvc ; 

toolset.flags msvc.compile CFLAGS <variant>release : "/GL /arch:SSE2 /fp:fast" : unchecked ; 
toolset.flags msvc.compile CFLAGS <variant>debug : "/RTCc /RTC1 /GS" : unchecked ; 
toolset.flags msvc.archive AROPTIONS <variant>release/<link>static : "/LTCG" : unchecked ; 
toolset.flags msvc.link LINKFLAGS <variant>release/<link>shared : "/LTCG /OPT:REF /OPT:ICF" : unchecked ; 
toolset.flags msvc.link LINKFLAGS <link>shared : "/PDB:c:\\Lib\\boost\\stage\\lib\\" : unchecked ; 

option.set keep-going : false ; 
相關問題