Boost Build:使用特性或变量

Boost Build: Use a feature or a variable

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

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

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 中,因此不直接在根文件中。

我只想使用你对变量的建议。它们提供了很大的灵活性。我看不出 "feature" 在这种情况下会有什么帮助。