【发布时间】:2011-08-17 13:08:52
【问题描述】:
我想在 SCons 中运行一个没有任何输入/输出文件的命令(实际上输入和输出是同一个文件)。目前我只是用 subprocess.Popen 手动运行它,但是有没有更 SConsy 的方法呢?
【问题讨论】:
标签: scons
我想在 SCons 中运行一个没有任何输入/输出文件的命令(实际上输入和输出是同一个文件)。目前我只是用 subprocess.Popen 手动运行它,但是有没有更 SConsy 的方法呢?
【问题讨论】:
标签: scons
您可以使用Command 函数运行您通过 Popen 运行的任何外部命令,并且您可以使用AlwaysBuild 函数确保即使目标文件存在,您的命令也始终运行。 Scons 不喜欢依赖循环,所以将源列表留空。
myfile = env.Command('myfile.out', [], 'echo Hello world > $TARGETS')
env.AlwaysBuild(myfile)
scons wiki 还有一个PhonyTargets 的配方,可以轻松设置许多简单的命令。
【讨论】:
AlwaysBuild 是一个误导性名称。在实际发出命令之前,scons 仍然会评估一些规则。