Delete
Factory
If you need to delete a file,
then the Delete
factory
can be used in much the same way as
the Copy
factory.
For example, if we want to make sure that
the temporary file
in our last example doesn't exist before
we copy to it,
we could add Delete
to the beginning
of the command list:
Command("file.out", "file.in", [ Delete("tempfile"), Copy("tempfile", "$SOURCE"), "modify tempfile", Copy("$TARGET", "tempfile"), ])
When then executes as follows:
% scons -Q Delete("tempfile") Copy("tempfile", "file.in") modify tempfile Copy("file.out", "tempfile")
Of course, like all of these Action
factories,
the Delete
factory also expands
$TARGET
and $SOURCE
variables appropriately.
For example:
Command("file.out", "file.in", [ Delete("$TARGET"), Copy("$TARGET", "$SOURCE") ])
Executes as:
% scons -Q Delete("file.out") Copy("file.out", "file.in")
(Note, however, that you typically don't need to
call the Delete
factory explicitly in this way;
by default, SCons deletes its target(s)
for you before executing any action.