Another way to get information from
a construction environment.
is to use the subst method
on a string containing $-expansions
of construction variable names.
As a simple example,
the example from the previous
section that used
env['CC']
to fetch the value of $CC
could also be written as:
env = Environment()
print "CC is:", env.subst('$CC')
|
The real advantage of using
subst to expand strings is
that construction variables
in the result get
re-expanded until
there are no expansions left in the string.
So a simple fetch of a value like
$CCCOM:
env = Environment(CCFLAGS = '-DFOO')
print "CCCOM is:", env['CCCOM']
|
Will print the unexpanded value of $CCCOM,
showing us the construction
variables that still need to be expanded:
% scons -Q
CCCOM is: $CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o $TARGET $SOURCES
scons: `.' is up to date.
|
Calling the subst method on $CCOM,
however:
env = Environment(CCFLAGS = '-DFOO')
print "CCCOM is:", env.subst('$CCCOM')
|
Will recursively expand all of
the $-prefixed construction variables,
showing us the final output:
% scons -Q
CCCOM is: gcc -DFOO -c -o
scons: `.' is up to date.
|
(Note that because we're not expanding this
in the context of building something
there are no target or source files
for $TARGET and $SOURCES to expand.