2012-10-31 18 views
1

你们如何将有价值的参数传递给scons?我经历了documentation,不幸的是我仍然不清楚。我从来没有用过它。将命令行中的值传递给scons?

请考虑this构建脚本。

这里是代码段从它

add_option("boost-version", "boost version for linking(1_38)" , 1 , True , "boostVersion") 

boostVersion = GetOption("boostVersion") 
if boostVersion is None: 
    boostVersion = "" 
else: 
    boostVersion = "-" + boostVersion 

我打过电话scons --boost-version=1.51并试图scons --boostVersion=1.51并且它都没有奏效。

+1

当你说“......它们都不起作用”时,究竟会发生什么? SCons不接受命令行并退出?还是它不正确地将值存储在'boostVersion'变量中? – Brady

回答

1

你可以使用参数:

你在命令行上调用scons boost-version=1.51

然后,在SConscript获取价值:

boostVersion = defaultBoostVersion 
if 'boost-version' in ARGUMENTS: 
    boostVersion = ARGUMENTS["boost-version"] 

,或者为elmo建议:

boostVersion = ARGUMENTS.get("boost-version", defaultBoostVersion) 

scons文档有more information同一页面还介绍如何使用先前尝试使用的 AddOption命令。它也可以使用,但论据(对我来说至少)更容易理解。

+0

更短(我认为更可读)的方式是'boostVersion = ARGUMENTS.get(“boost-version”,defaultBoostVersion)' – elmo

+0

@elmo谢谢,注意到并编辑。 – daramarak

相关问题