SCons.Subst

Package SCons :: Module Subst |
[hide private]
[frames] | no frames]

# Module Subst

source code

SCons.Subst

SCons string substitution.

Classes | [hide private]
| Literal A wrapper for a string.
| SpecialAttrWrapper This is a wrapper for what we call a 'Node special attribute.' This is any of the attributes of a Node that we can reference from Environment variable substitution, such as $TARGET.abspath or $SOURCES[1].filebase.
| CmdStringHolder This is a special class used to hold strings generated by scons_subst() and scons_subst_list().
| NLWrapper A wrapper class that delays turning a list of sources or targets into a NodeList until it's needed.
| Targets_or_Sources A class that implements $TARGETS or $SOURCES expansions by in turn wrapping a NLWrapper.
| Target_or_Source A class that implements $TARGET or $SOURCE expansions by in turn wrapping a NLWrapper.

Functions | [hide private]
SetAllowableExceptions(*excepts) | source code
raise_exception(exception, target, s) | source code
quote_spaces(arg) Generic function for putting double quotes around any string that has white space in it. | source code
escape_list(list, escape_func) Escape a list of arguments by running the specified escape_func on every object in the list that has an escape() method. | source code
subst_dict(target, source) Create a dictionary for substitution of special construction variables. | source code
_rm_list(list) | source code
_remove_list(list) | source code
scons_subst(strSubst, env, mode=False, target=False, source=False, gvars=`{``}`, lvars=`{``}`, conv=False) Expand a string or list containing construction variable substitutions. | source code
scons_subst_list(strSubst, env, mode=False, target=False, source=False, gvars=`{``}`, lvars=`{``}`, conv=False) Substitute construction variables in a string (or list or other object) and separate the arguments into a command list. | source code
scons_subst_once(strSubst, env, key) Perform single (non-recursive) substitution of a single construction variable keyword. | source code

Variables | [hide private]
| __revision__ = ``'``src/engine/SCons/Subst.py 2725 2008/03/31 12:5``...``
| _strconv = `[SCons.Util.to_String_for_subst, SCons.Util.to_Stri`...``
| AllowableExceptions = ``(`<type 'exceptions.IndexError'>`,` <type '`...``
| SUBST_CMD = `0`
| SUBST_RAW = `False`
| SUBST_SIG = `2`
| _rm = `re.compile(r'\$`[`\(\)`]`')`
| _remove = `re.compile(r'\$\(`[^`\$`]``*``(`\$`[^`\)`]``[^`\$`]``*``)``*`\$\)')`
| _regex_remove = ``[`re.compile(r'\$`[`\(\)`]`')`,` None`,` re.compile(r'\`...``
| _list_remove = `[_rm_list, None, _remove_list]`
| _dollar_exps_str = ``'``\\$[\\$\\(\\)]|\\$[_a-zA-Z][\\.\\w]*|\\${[``...``
| _dollar_exps = `re.compile(r'`(`\$`[`\$\(\)`]``|``[`_a`-`zA`-`Z`]``[`\.\w`]``*``|`\{`[^`\`...``
| _separate_args = `re.compile(r'`(`\$`[`\$\(\)`]``|`\$`[`_a`-`zA`-`Z`]``[`\.\w`]``*``|`\`...``
| _space_sep = `re.compile(r'`[`\t `]``+``(?!``[^`\{`]``*`\}`)`')`

Function Details | [hide private]

### subst_dict(target, source) | source code
Create a dictionary for substitution of special construction variables. This translates the following special arguments: target - the target (object or array of objects), used to generate the TARGET and TARGETS construction variables source - the source (object or array of objects), used to generate the SOURCES and SOURCE construction variables

### scons_subst(strSubst, env, mode=False, target=False, source=False, gvars=`{``}`, lvars=`{``}`, conv=False) | source code
Expand a string or list containing construction variable substitutions. This is the work-horse function for substitutions in file names and the like. The companion scons_subst_list() function (below) handles separating command lines into lists of arguments, so see that function if that's what you're looking for.

### scons_subst_list(strSubst, env, mode=False, target=False, source=False, gvars=`{``}`, lvars=`{``}`, conv=False) | source code
Substitute construction variables in a string (or list or other object) and separate the arguments into a command list. The companion scons_subst() function (above) handles basic substitutions within strings, so see that function instead if that's what you're looking for.

### scons_subst_once(strSubst, env, key) | source code
Perform single (non-recursive) substitution of a single construction variable keyword. This is used when setting a variable when copying or overriding values in an Environment. We want to capture (expand) the old value before we override it, so people can do things like: env2 = env.Clone(CCFLAGS = '$CCFLAGS -g') We do this with some straightforward, brute-force code here...

Variables Details | [hide private]

  ### __revision__ Value:
      'src/engine/SCons/Subst.py 2725 2008/03/31 12:52:02 knight'

  ### _strconv Value:
      [SCons.Util.to_String_for_subst, SCons.Util.to_String_for_subst, SCons
      .Util.to_String_for_signature]

  ### AllowableExceptions Value:
      (<type 'exceptions.IndexError'>, <type 'exceptions.NameError'>)

  ### _regex_remove Value:
      [re.compile(r'\$[\(\)]'),
       None,
       re.compile(r'\$\([^\$]*(\$[^\)][^\$]*)*\$\)')]

  ### _dollar_exps_str Value:
      '\\$[\\$\\(\\)]|\\$[_a-zA-Z][\\.\\w]*|\\${[^}]*}'

  ### _dollar_exps Value:
      re.compile(r'(\$[\$\(\)]|[_a-zA-Z][\.\w]*|\{[^\}]*\})')

  ### _separate_args Value:
      re.compile(r'(\$[\$\(\)]|\$[_a-zA-Z][\.\w]*|\$\{[^\}]*\}|\s+|[^\s\$]+|
      \$)')