You may want to disable caching for certain
specific files in your configuration.
For example, if you only want to put
executable files in a central cache,
but not the intermediate object files,
you can use the NoCache
function to specify that the
object files should not be cached:
env = Environment()
obj = env.Object('hello.c')
env.Program('hello.c')
CacheDir('cache')
NoCache('hello.o')
Then when you run scons after cleaning the built targets, it will recompile the object file locally (since it doesn't exist in the derived-file cache directory), but still realize that the derived-file cache directory contains an up-to-date executable program that can be retrieved instead of re-linking:
%scons -Qcc -o hello.o -c hello.c cc -o hello hello.o %scons -Q -cRemoved hello.o Removed hello %scons -Qcc -o hello.o -c hello.c Retrieved `hello' from cache