我仍在努力为waf设置子项目的不同标志集。
我有这样的结构,其中superproject递归到子项目:
superproject/wscript
libproject/wscript
progproject/wscript
问题是子项目progrproject
和libproject
都使用了提升工具。
我希望两个项目在配置时检查提升,因为我希望项目在独立构建时是自包含的。
我必须做这样的事情,不要覆盖子项目之间的提升标志:
#In libproject
cfg.check_boost('regex', uselib_store='BOOST_LIBPROJECT')
#In progrpoject
cfg.check_boost('program_options', uselib_store='BOOST_PROGPROJECT')
这会产生副作用,即选项--boost-libs
和--boost-includes
默认不再有效。
实际上,我想为两者使用默认的BOOST存储,但似乎在_cache.py
文件中覆盖了另一个。如果我单独构建项目并分开,则不会发生此问题。我认为设置另一个环境不是解决方案(对吧?)
因为这会使命令变为./waf build_libproject
或类似,这不是我想要的。
我想:
./ waf configure build
无需使用不同的商店或预防性标志名称更改即可正确运行。
这样做的正确方法是什么?