The function set_options is used for three main purposes:
Waf uses the optparse module from Python for adding command-line options, for example:
def set_options(opt):
opt.add_option('--exe', action='store_true', default=False,
help='Execute the program after it is compiled')
def shutdown():
import Options
print(Options.options.exe)
The command-line options can be displayed afterwards:
$ waf --help
Usage: waf [options] [commands ...]
* Main commands: configure build install clean dist distclean uninstall distcheck
* Example: ./waf build -j4
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-j JOBS, --jobs=JOBS amount of parallel jobs [Default: 1]
-f, --force force file installation
-k, --keep keep running happily on independent task groups
-p, --progress -p: progress bar; -pp: ide output
-v, --verbose verbosity level -v -vv or -vvv [Default: 0]
--destdir=DESTDIR installation root [Default: '']
--nocache compile everything, even if WAFCACHE is set
--zones=ZONES debugging zones (task_gen, deps, tasks, etc)
--targets=COMPILE_TARGETS
compile the targets given only [targets in CSV format, e.g. "target1,target2"]
--exe Execute the program after it is compiled
and used like this:
$ waf --exe True $ waf False
The function set_options may reference build functions in wscript present in sub folders, for example:
. `-- wscript |-- src | `-- wscript
The top-level wscript may indicate there is a build function to execute in src/wscript using:
def set_options(opt):
opt.sub_options('src')