有没有办法(没有修改源文件)指定我想用msvc构建boost,在调试中有一组附加选项而另一个在发布变体中?在一些config.jam甚至更好的命令行?像
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 = debug / somefeature = somevalue,但这不起作用。
答案 0 :(得分:2)
好吧,经过一些实验,我能够通过project-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 ;