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
答案 0 :(得分:2)
有NoCache:
P = Program(...)
NoCache(P)
答案 1 :(得分:0)
你正在以错误的方式思考这个问题。您可以告诉scons正在构建的对象不会进入缓存,而不是从缓存中排除对象。缓存目录是根据环境设置的,因此您需要执行类似这样的操作
noCacheEnv = env.Clone()
noCacheEnv.CacheDir(None)
noCacheEnv.Program('cantbecached.c')