%scons; %builders-mod; %functions-mod; %tools-mod; %variables-mod; ]> (arguments) This function adds a new command-line option to be recognized. The specified arguments are the same as supported by the standard Python optparse.add_option() method (with a few additional capabilities noted below); see the documentation for optparse for a thorough discussion of its option-processing capabities. In addition to the arguments and values supported by the optparse.add_option() method, the SCons &f-AddOption; function allows you to set the nargs keyword value to '?' (a string with just the question mark) to indicate that the specified long option(s) take(s) an optional argument. When nargs = '?' is passed to the &f-AddOption; function, the const keyword argument may be used to supply the "default" value that should be used when the option is specified on the command line without an explicit argument. If no default= keyword argument is supplied when calling &f-AddOption;, the option will have a default value of None. Once a new command-line option has been added with &f-AddOption;, the option value may be accessed using &f-GetOption; or env.GetOption(). The value may also be set, using &f-SetOption; or env.SetOption(), if conditions in a &SConscript; require overriding any default value. Note, however, that a value specified on the command line will always override a value set by any SConscript file. Any specified help= strings for the new option(s) will be displayed by the or options (the latter only if no other help text is specified in the SConscript files). The help text for the local options specified by &f-AddOption; will appear below the SCons options themselves, under a separate Local Options heading. The options will appear in the help text in the order in which the &f-AddOption; calls occur. Example: AddOption('--prefix', dest='prefix', nargs=1, type='string', action='store', metavar='DIR', help='installation prefix') env = Environment(PREFIX = GetOption('prefix')) () Returns a list of exceptions for the actions that failed while attempting to build targets. Each element in the returned list is a BuildError object with the following attributes that record various aspects of the build failure: .node The node that was being built when the build failure occurred. .status The numeric exit status returned by the command or Python function that failed when trying to build the specified Node. .errstr The SCons error string describing the build failure. (This is often a generic message like "Error 2" to indicate that an executed command exited with a status of 2.) .filename The name of the file or directory that actually caused the failure. This may be different from the .node attribute. For example, if an attempt to build a target named sub/dir/target fails because the sub/dir directory could not be created, then the .node attribute will be sub/dir/target but the .filename attribute will be sub/dir. .executor The SCons Executor object for the target Node being built. This can be used to retrieve the construction environment used for the failed action. .action The actual SCons Action object that failed. This will be one specific action out of the possible list of actions that would have been executed to build the target. .command The actual expanded command that was executed and failed, after expansion of &cv-link-TARGET;, &cv-link-SOURCE;, and other construction variables. Note that the &f-GetBuildFailures; function will always return an empty list until any build failure has occurred, which means that &f-GetBuildFailures; will always return an empty list while the &SConscript; files are being read. Its primary intended use is for functions that will be executed before SCons exits by passing them to the standard Python atexit.register() function. Example: import atexit def print_build_failures(): from SCons.Script import GetBuildFailures for bf in GetBuildFailures(): print("%s failed: %s" % (bf.node, bf.errstr)) atexit.register(print_build_failures) (name) This function provides a way to query the value of SCons options set on scons command line (or set using the &f-link-SetOption; function). The options supported are: cache_debug which corresponds to --cache-debug; cache_disable which corresponds to --cache-disable; cache_force which corresponds to --cache-force; cache_show which corresponds to --cache-show; clean which corresponds to -c, --clean and --remove; config which corresponds to --config; directory which corresponds to -C and --directory; diskcheck which corresponds to --diskcheck duplicate which corresponds to --duplicate; file which corresponds to -f, --file, --makefile and --sconstruct; help which corresponds to -h and --help; ignore_errors which corresponds to --ignore-errors; implicit_cache which corresponds to --implicit-cache; implicit_deps_changed which corresponds to --implicit-deps-changed; implicit_deps_unchanged which corresponds to --implicit-deps-unchanged; interactive which corresponds to --interact and --interactive; keep_going which corresponds to -k and --keep-going; max_drift which corresponds to --max-drift; no_exec which corresponds to -n, --no-exec, --just-print, --dry-run and --recon; no_site_dir which corresponds to --no-site-dir; num_jobs which corresponds to -j and --jobs; profile_file which corresponds to --profile; question which corresponds to -q and --question; random which corresponds to --random; repository which corresponds to -Y, --repository and --srcdir; silent which corresponds to -s, --silent and --quiet; site_dir which corresponds to --site-dir; stack_size which corresponds to --stack-size; taskmastertrace_file which corresponds to --taskmastertrace; and warn which corresponds to --warn and --warning. See the documentation for the corresponding command line object for information about each specific option. (callable, [interval]) (string, [interval, file, overwrite]) (list_of_strings, [interval, file, overwrite]) Allows SCons to show progress made during the build by displaying a string or calling a function while evaluating Nodes (e.g. files). If the first specified argument is a Python callable (a function or an object that has a __call__() method), the function will be called once every interval times a Node is evaluated. The callable will be passed the evaluated Node as its only argument. (For future compatibility, it's a good idea to also add *args and **kw as arguments to your function or method. This will prevent the code from breaking if SCons ever changes the interface to call the function with additional arguments in the future.) An example of a simple custom progress function that prints a string containing the Node name every 10 Nodes: def my_progress_function(node, *args, **kw): print('Evaluating node %s!' % node) Progress(my_progress_function, interval=10) A more complicated example of a custom progress display object that prints a string containing a count every 100 evaluated Nodes. Note the use of \r (a carriage return) at the end so that the string will overwrite itself on a display: import sys class ProgressCounter(object): count = 0 def __call__(self, node, *args, **kw): self.count += 100 sys.stderr.write('Evaluated %s nodes\r' % self.count) Progress(ProgressCounter(), interval=100) If the first argument &f-link-Progress; is a string, the string will be displayed every interval evaluated Nodes. The default is to print the string on standard output; an alternate output stream may be specified with the file= argument. The following will print a series of dots on the error output, one dot for every 100 evaluated Nodes: import sys Progress('.', interval=100, file=sys.stderr) If the string contains the verbatim substring &cv-TARGET;, it will be replaced with the Node. Note that, for performance reasons, this is not a regular SCons variable substition, so you can not use other variables or use curly braces. The following example will print the name of every evaluated Node, using a \r (carriage return) to cause each line to overwritten by the next line, and the overwrite= keyword argument to make sure the previously-printed file name is overwritten with blank spaces: import sys Progress('$TARGET\r', overwrite=True) If the first argument to &f-Progress; is a list of strings, then each string in the list will be displayed in rotating fashion every interval evaluated Nodes. This can be used to implement a "spinner" on the user's screen as follows: Progress(['-\r', '\\\r', '|\r', '/\r'], interval=5) (target, ...) Marks each given target as precious so it is not deleted before it is rebuilt. Normally &scons; deletes a target before building it. Multiple targets can be passed in to a single call to &f-Precious;. (target, ...) This indicates that each given target should not be created by the build rule, and if the target is created, an error will be generated. This is similar to the gnu make .PHONY target. However, in the vast majority of cases, an &f-Alias; is more appropriate. Multiple targets can be passed in to a single call to &f-Pseudo;. (name, value) This function provides a way to set a select subset of the scons command line options from a SConscript file. The options supported are: clean which corresponds to -c, --clean and --remove; duplicate which corresponds to --duplicate; help which corresponds to -h and --help; implicit_cache which corresponds to --implicit-cache; max_drift which corresponds to --max-drift; no_exec which corresponds to -n, --no-exec, --just-print, --dry-run and --recon; num_jobs which corresponds to -j and --jobs; random which corresponds to --random; and silent which corresponds to --silent. stack_size which corresponds to --stack-size. See the documentation for the corresponding command line object for information about each specific option. Example: SetOption('max_drift', 1)