4

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

我想为命令生成器设置一个 $*COMSTR 变量。

target = 'mydb.db3'

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

command = '@sqlite3 $TARGET < ' + populatesql

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

我发现我可以在命令前加上“@”字符来抑制输出,但我一直无法发现如何在命令生成器中使用 $*COMSTR。我在这里错过了一个技巧吗?

谢谢。

4

1 回答 1

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'))
于 2013-05-27T10:52:29.017 回答