如何告诉scons使用构建缓存排除某些文件

时间:2014-06-12 16:39:30

标签: caching scons

Scons提供了一个使用构建缓存的选项,该缓存用于通过从该缓存中提取最新文件来缩短构建时间。缓存的实施似乎是全球性的。例如,有强制缓存,禁用缓存,显示缓存等的命令.CacheDir中似乎没有一种方法可以排除某些文件,因为可能存在真正应该重新编译的文件。

鉴于这种情况,一些合理的解决方案是什么?

来源: CacheDir来源:http://www.scons.org/doc/production/HTML/scons-api/SCons.CacheDir-pysrc.html

禁用缓存示例:http://www.scons.org/doc/1.2.0/HTML/scons-user/x4168.html

2 个答案:

答案 0 :(得分:2)

有NoCache:

P = Program(...)
NoCache(P)

答案 1 :(得分:0)

你正在以错误的方式思考这个问题。您可以告诉scons正在构建的对象不会进入缓存,而不是从缓存中排除对象。缓存目录是根据环境设置的,因此您需要执行类似这样的操作

noCacheEnv = env.Clone()
noCacheEnv.CacheDir(None)
noCacheEnv.Program('cantbecached.c')