如何在'scons'中为命令生成器指定COMSTR

时间:2013-05-26 20:13:57

标签: python scons

scons中的许多内置构建器都有$ * COMSTR变量,这些变量用于更改其关联的构建器的默认输出。我们可以使用$ * COMSTR变量来选择性地使我们的构建过程更清晰。

我想为命令构建器设置$ * COMSTR变量。

target = 'mydb.db3'

populatesql = 'populate.sql'
sources = [populatesql]

command = '@sqlite3 $TARGET < ' + populatesql

built_database = env.Command(target, sources, command)

我发现我可以在命令前加上'@'字符来抑制输出,但我一直无法发现如何在命令构建器中使用$ * COMSTR。我在这里错过了一招吗?

感谢。

1 个答案:

答案 0 :(得分:6)

您不会将命令字符串与构建器关联。命令字符串与Action对象相关联。

如果你想要一个命令字符串,只需写下这样的东西:

built_database = env.Command(target, sources, 
                             Action('mySqlite3', 'Generating $TARGET with sqlite3'))

或者如果你想要更精细的调整

env['SQLITE3COMSTR'] = 'Generating $TARGET from $SOURCES with sqlite3'
...
built_database = env.Command(target, sources, Action('mySqlite3', '$SQLITE3COMSTR'))