0

我有一个构建脚本,我无法控制它构建所有内容(生成大量文件的 shell 命令),但大多数时候只构建几个文件就足够了,而不是运行整个脚本。

我的 SConstruct 文件如下所示:

cmd1 = env.Command(<main executable file path>, [], <build everything shell command>)

cmd2 = env.Command(<target file path 1>, <source file path 1>, <build file 1>)
cmd3 = env.Command(<target file path 2>, <source file path 2>, <build file 2>)

我想要的是将 cmd2 和 cmd2 命令目标标记为已构建,如果已构建 cmd1 目标,则无需实际构建它,这可能吗?

4

1 回答 1

0

您的意思是command1 构建目标1 和目标2?

如果是这样,那真的是回到前面。

构建系统的想法是自下而上构建。它构建您需要的每一块,然后将所有块放在一起以获得更大的块,依此类推。

它不包含一个构建所有内容的巨大脚本和许多用于部分构建大脚本构建的一些东西的小脚本。

您应该考虑一些结构,例如:

cmd2 = env.Command(<target file path 1>, <source file path 1>, <build command 1>)
cmd3 = env.Command(<target file path 2>, <source file path 2>, <build command 2>)
cmd1 = env.Command(<main executable file path>, [cmd2, cmd3], <link everything command>)
于 2013-08-16T10:52:05.743 回答