Boost Build:使用功能或变量

时间:2015-08-30 17:07:20

标签: c++ boost bjam boost-bjam b2

我正在使用Boost Build运行数据库集成测试。测试需要一些命令行参数(DB用户名,密码)。通过Boost Build以可由用户配置的方式(通过环境变量,bjam命令行,user-config.jam)设置它的最佳方法是什么?

我知道我可以用变量做到这一点:

import os ;
local DB_PASS = [ os.environ DB_PASS ] ;
run dbtest : test.cpp : --dbpass $(DB_PASS) ;

可以通过命令行(bjam -s DB_PASS=pass)或通过环境变量设置。

另一方面,Boost Build倾向于通过特征机制完成大部分配置。我可以定义一个新功能,然后将配置数据放到正确的位置。

每种方法的优缺点是什么?我应该选哪一个?如果功能:我该怎么做?

注意:实际测试是在Jamroot使用的Jamfile中,因此不直接在根文件中。

1 个答案:

答案 0 :(得分:2)

我会用你的变量建议。它们提供了很大的灵活性。我不知道"功能"在这种情况下会有所帮助。