如何在scons构建中删除临时文件而不导致它们被重建

时间:2018-12-02 11:01:13

标签: scons

在我要执行的构建中,有2个步骤来生成输出

a.bin-> a.c(将任何文件转换为带有存储内容的数组的C文件) a.c-> a.o

a.c可能很大,应在生成a.o之后将其删除。

这是我到目前为止尝试过的

  1. 每个步骤都使用单独的构建器。对于最后一步,请使用target.AddPostAction(Delete(“ a.c”))

这确实会删除临时文件,但是当您再次生成临时文件时,将重新生成a.c,因为SCons默认会生成与make不同的所有目标

是否有命令告诉SCons除非另一个目标需要它,否则不要构建目标?这与AlwaysBuild()相反

  1. 创建一个同时执行两个步骤的自定义构建器(target = a.o,source = a.json),以便SCons甚至都不知道a.c。

这需要我生成自己的用于编译C的命令,该命令适用于GCC,但不适用于Microsoft编译器。有什么方法可以让SCons生成C编译命令或让SCons立即执行该命令?

1 个答案:

答案 0 :(得分:0)

您尝试过吗:

Ignore('a.o','a.c')

没有尝试过,但是可能有用。