Executing an action immediately: the Execute Function
We've been showing you how to use Action factories
in the Command function.
You can also execute an Action returned by a factory
(or actually, any Action)
at the time the SConscript file is read
by wrapping it up in the Execute function.
For example, if we need to make sure that
a directory exists before we build any targets,
Execute(Mkdir('/tmp/my_temp_directory'))
|
Notice that this will
create the directory while
the SConscript file is being read:
% scons
scons: Reading SConscript files ...
Mkdir("/tmp/my_temp_directory")
scons: done reading SConscript files.
scons: Building targets ...
scons: `.' is up to date.
scons: done building targets.
|
If you're familiar with Python,
you may wonder why you would want to use this
instead of just calling the native Python
os.mkdir() function.
The advantage here is that the Mkdir
action will behave appropriately if the user
specifies the SCons -n or
-q options--that is,
it will print the action but not actually
make the directory when -n is specified,
or make the directory but not print the action
when -q is specified.