scons中的许多内置构建器都有$ * COMSTR变量,这些变量用于更改其关联的构建器的默认输出。我们可以使用$ * COMSTR变量来选择性地使我们的构建过程更清晰。
我想为命令构建器设置$ * COMSTR变量。
target = 'mydb.db3'
populatesql = 'populate.sql'
sources = [populatesql]
command = '@sqlite3 $TARGET < ' + populatesql
built_database = env.Command(target, sources, command)
我发现我可以在命令前加上'@'字符来抑制输出,但我一直无法发现如何在命令构建器中使用$ * COMSTR。我在这里错过了一招吗?
感谢。
答案 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'))