是否可以以只读方式使用scons CacheDir

时间:2012-05-29 11:41:29

标签: scons

真的说的是什么。我们需要一个缓存,因为大多数文件是使用每个文件的相同版本构建的,但是任何改变文件的开发人员只会改变一些文件,并且通常它们会发生很大的变化。

将这个更改写入CacheDir()指定的缓存,直到它被批准生产,这一点没什么意义,但是从CacheDir中复制东西有很多意义

但我只能看到完全禁用缓存的选项。

(我会把它发布到scons邮件列表,但它只是提出了一个完全难以辨认的验证码)

2 个答案:

答案 0 :(得分:0)

我可以想到两个不同的选择:

  1. 如何使用Repository()代替那些几乎不会改变的文件呢?
  2. 考虑使用SCons手册页中描述的--implicit-deps-unchanged选项和here
  3. Here也是类似的讨论。

    您如何计划切换只读行为?你需要一些逻辑来做到这一点。由于无法以只读方式使用CacheDir,另一种方法是使用相同的切换逻辑在使用Repository和CacheDir之间切换。

答案 1 :(得分:0)

Fwiw,烤饼现在有这个。版本2.3.1

来自:http://www.scons.org/doc/production/HTML/scons-man.html

scons可以维护可以在多个构建之间共享的目标(派生)文件的缓存。在SConscript文件中启用缓存时,scons构建的任何目标文件都将复制到缓存中。如果在缓存中找到最新的目标文件,则将从缓存中检索该文件,而不是在本地重建。可以通过--cache-force, - cache-disable, - cache-readonly和--cache-show命令行选项以其他方式禁用和控制缓存行为。 --random选项可用于防止多个构建同时尝试更新缓存。