如何在Program()调用中附加到构造变量?

时间:2014-09-05 21:40:29

标签: scons

我为我的测试设置了自定义环境:

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']更好(即更规范)的方式?

1 个答案:

答案 0 :(得分:2)

在Builder调用(如Program)中为环境变量指定新值始终被解释为"覆盖"。因此,无法像上面的示例中那样编译完整的替换值。 另一种选择是克隆环境" test_env"再次,然后使用Append添加" extralib" LIBS ...