SCons User Guide 0.95 | ||
---|---|---|
<<< Previous | Controlling a Build From the Command Line | Next >>> |
Being able to use a command-line build option like debug=1 is handy, but it can be a chore to write specific Python code to recognize each such option and apply the values to a construction variable. To help with this, SCons supports a class to define such build options easily and to read build option values from a file. This allows you to control how the build options affect construction environments. The way you do this is by specifying a file name when you call Options, like custom.py in the following example:
opts = Options('custom.py') opts.Add('RELEASE', 'Set to 1 to build for release', 0) env = Environment(options = opts, CPPDEFINES={'RELEASE_BUILD' : '${RELEASE}'}) env.Program(['foo.c', 'bar.c']) Help(opts.GenerateHelpText(env)) |
This then allows us to control the RELEASE variable by setting it in the custom.py file:
RELEASE = 1 |
Note that this file is actually executed like a Python script. Now when we run SCons:
% scons -Q
cc -DRELEASE_BUILD=1 -c -o bar.o bar.c
cc -DRELEASE_BUILD=1 -c -o foo.o foo.c
cc -o foo foo.o bar.o
And if we change the contents of custom.py to:
RELEASE = 0 |
The object files are rebuilt appropriately with the new option:
% scons -Q
cc -DRELEASE_BUILD=0 -c -o bar.o bar.c
cc -DRELEASE_BUILD=0 -c -o foo.o foo.c
cc -o foo foo.o bar.o
<<< Previous | Home | Next >>> |
Providing Help for Command-Line Build Options | Up | Canned Build Options |