假设我有SConstruct
将构建环境导出到子公司SConscript
:
Export('SConscript', 'env')
我希望SConscript
将命令行变量foo
插入env
,以便我可以使用命令调用构建
scons foo=bar
这是可能的,还是必须支持将这样的命令行变量提供给环境的构造函数?
答案 0 :(得分:1)
创建一个包含新变量的新Variables
对象,然后更新环境in the subsidiary
SConscript`:
Import('env')
vars = Variables()
vars.Add('foo', help='a command line variable named foo')
vars.Update(env)
答案 1 :(得分:1)
我不确定这个问题是否明确,但我的回答是。
Scons对命令行参数有很好的支持。在您的情况下使用函数ARGUMENTS.get('command_line_parameter', [default])
。要将变量插入环境,只需使用索引运算符[]
。
示例:
env['foo'] = ARGUMENTS.get('foo') # if parameter not set, returns None
或默认值:
env['foo'] = ARGUMENTS.get('foo', 'bar')
您可以在scons指南中找到有关command-line parameters handling的更多信息。
答案 2 :(得分:0)
当使用变量更新命令行值时,您也可以将命令行值传递给环境:
vars.Update(env, ARGUMENTS)