2014-09-05 36 views
1

我有一个自定义的环境设置为我的测试:如何在Program()调用中追加到构造变量?

test_env = env.Clone() 
test_env.Append(LIBS=['boost_unit_test_framework']) 

但对于我的测试之一,我想对一个额外的库链接:

test_env.Program('foo_tests', 
       source='foo/tests.cpp', 
       LIBS=['extralib'], 
       LIBPATH=['.']) 

可悲的是这将覆盖从该LIBS环境,当我想要它添加到它。有没有比LIBS=test_env['LIBS'] + ['extralib']更好的(比较规范的)方式来做到这一点?

回答

2

在Builder调用中指定环境变量的新值(如程序)时,总是被解释为“覆盖”。因此,无法编译完整的替换值,就像您在上面的示例中所做的那样。 另一种选择是再次克隆环境“test_env”,然后使用Append将“extralib”添加到LIBS中...