NoClean
Function
By default, SCons removes all built targets when invoked
with the -c option to clean a source tree
of built targets.
Sometimes, however, this is not what you want.
For example, you may want to remove only intermediate generated files
(such as object files),
but leave the final targets
(the libraries)
untouched.
In such cases, you can use the NoClean
method to prevent SCons
from removing a target during a clean:
env = Environment(RANLIBCOM='') lib = env.Library('foo', ['f1.c', 'f2.c', 'f3.c']) env.NoClean(lib)
Notice that the libfoo.a is not listed as a removed file:
% scons -Q cc -o f1.o -c f1.c cc -o f2.o -c f2.c cc -o f3.o -c f3.c ar rc libfoo.a f1.o f2.o f3.o % scons -c scons: Reading SConscript files ... scons: done reading SConscript files. scons: Cleaning targets ... Removed f1.o Removed f2.o Removed f3.o scons: done cleaning targets.