diff options
| author | Steven Knight <knight@baldmt.com> | 2003-07-23 14:20:43 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2003-07-23 14:20:43 (GMT) |
| commit | 5d238601a22fa009de4df38e0257c405f9b243db (patch) | |
| tree | fb5cb1676ff40c4f66c49b4fb5893fa30d72765a /src/engine/SCons/Action.py | |
| parent | 628a6c6cbdbcbcceec438d2063f51b16e65f37aa (diff) | |
| download | SCons-5d238601a22fa009de4df38e0257c405f9b243db.zip SCons-5d238601a22fa009de4df38e0257c405f9b243db.tar.gz SCons-5d238601a22fa009de4df38e0257c405f9b243db.tar.bz2 | |
Fix a problem when using --cache-show.
Diffstat (limited to 'src/engine/SCons/Action.py')
| -rw-r--r-- | src/engine/SCons/Action.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py index 49b0cb1..c9186a4 100644 --- a/src/engine/SCons/Action.py +++ b/src/engine/SCons/Action.py @@ -299,6 +299,13 @@ class CommandGeneratorAction(ActionBase): raise SCons.Errors.UserError("Object returned from command generator: %s cannot be used to create an Action." % repr(ret)) return gen_cmd + def strfunction(self, target, source, env): + if not SCons.Util.is_List(source): + source = [source] + rsources = map(rfile, source) + act = self.__generate(target, source, env, 0) + return act.strfunction(target, rsources, env) + def __call__(self, target, source, env): if not SCons.Util.is_List(source): source = [source] @@ -322,10 +329,17 @@ class LazyCmdGenerator: def __init__(self, var): self.var = SCons.Util.to_String(var) + def strfunction(self, target, source, env): + try: + return env[self.var] + except KeyError: + # The variable reference substitutes to nothing. + return '' + def __call__(self, target, source, env, for_signature): - if env.has_key(self.var): + try: return env[self.var] - else: + except KeyError: # The variable reference substitutes to nothing. return '' @@ -394,6 +408,16 @@ class ListAction(ActionBase): def get_actions(self): return self.list + def strfunction(self, target, source, env): + s = [] + for l in self.list: + if l.strfunction: + x = l.strfunction(target, source, env) + if not SCons.Util.is_List(x): + x = [x] + s.extend(x) + return string.join(s, "\n") + def __call__(self, target, source, env): for l in self.list: r = l(target, source, env) |
