SCons User Guide 0.94.1 | ||
---|---|---|
<<< Previous | Controlling a Build From the Command Line | Next >>> |
We've already been introduced to the COMMAND_LINE_TARGETS variable, which contains a list of targets specified on the command line, and the DEFAULT_TARGETS variable, which contains a list of targets specified via calls to the Default method or function. Sometimes, however, you want a list of whatever targets SCons will try to build, regardless of whether the targets came from the command line or a Default call. You could code this up by hand, as follows:
if COMMAND_LINE_TARGETS: targets = COMMAND_LINE_TARGETS else: targets = DEFAULT_TARGETS |
SCons, however, provides a convenient BUILD_TARGETS variable that eliminates the need for this by-hand manipulation. Essentially, the BUILD_TARGETS variable contains a list of the command-line targets, if any were specified, and if no command-line targets were specified, it contains a list of the targets specified via the Default method or function.
Because BUILD_TARGETS may contain a list of SCons nodes, you must convert the list elements to strings if you want to print them or look for a specific target name, just like the DEFAULT_TARGETS list:
prog1 = Program('prog1.c') Program('prog2.c') Default(prog1) print "BUILD_TARGETS is", map(str, BUILD_TARGETS) |
Notice how the value of BUILD_TARGETS changes depending on whether a target is specified on the command line:
% scons -Q
BUILD_TARGETS is ['prog1']
cc -c -o prog1.o prog1.c
cc -o prog1 prog1.o
% scons -Q prog2
BUILD_TARGETS is ['prog2']
cc -c -o prog2.o prog2.c
cc -o prog2 prog2.o
% scons -Q -c .
BUILD_TARGETS is ['.']
Removed prog1.o
Removed prog1
Removed prog2.o
Removed prog2
<<< Previous | Home | Next >>> |
Controlling the Default Targets | Up | Command-Line variable=value Build Options |