SCons supports a COMMAND_LINE_TARGETS
variable
that lets you get at the list of targets that the
user specified on the command line.
You can use the targets to manipulate the
build in any way you wish.
As a simple example,
suppose that you want to print a reminder
to the user whenever a specific program is built.
You can do this by checking for the
target in the COMMAND_LINE_TARGETS
list:
if 'bar' in COMMAND_LINE_TARGETS: print "Don't forget to copy `bar' to the archive!" Default(Program('foo.c')) Program('bar.c')
Then, running SCons with the default target works as it always does, but explicity specifying the bar target on the command line generates the warning message:
% scons -Q cc -o foo.o -c foo.c cc -o foo foo.o % scons -Q bar Don't forget to copy `bar' to the archive! cc -o bar.o -c bar.c cc -o bar bar.o
Another practical use for the COMMAND_LINE_TARGETS
variable
might be to speed up a build
by only reading certain subsidiary SConscript
files if a specific target is requested.