【问题标题】:Boost Build: Use a feature or a variableBoost Build:使用特征或变量
【发布时间】:2015-08-30 17:07:19
【问题描述】:

我有一个使用 Boost Build 运行的数据库集成测试。测试需要一些命令行参数(数据库用户名、密码)。通过 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 中,因此不直接在根文件中。

【问题讨论】:

    标签: c++ boost bjam b2


    【解决方案1】:

    我只会使用您对变量的建议。它们提供了很大的灵活性。在这种情况下,我看不出“功能”有什么帮助。

    【讨论】:

    • 我同意迈克尔的观点。当使用不同的值进行构建可能或合理时,以及构建产品会有所不同时,您会使用功能。调试或发布,共享或静态,gcc 或 clang,都是合理的特性。对于数据库密码,您可能永远不希望为不同的密码使用不同的二进制文件集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多