diff options
| author | Steven Knight <knight@baldmt.com> | 2001-09-29 10:52:18 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-09-29 10:52:18 (GMT) |
| commit | 5029b0d71e078e84d0513987860fdea1b72e40cc (patch) | |
| tree | c5e642ff3d0da4d39d5cf421202a0c1335a29fc7 /src/engine | |
| parent | 2a69a71894e681e7060e168b99fe7cc608ad7d33 (diff) | |
| download | SCons-5029b0d71e078e84d0513987860fdea1b72e40cc.zip SCons-5029b0d71e078e84d0513987860fdea1b72e40cc.tar.gz SCons-5029b0d71e078e84d0513987860fdea1b72e40cc.tar.bz2 | |
Add support for multi-command Builders and Actions.
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Builder.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py index 2852b3a..d354c57 100644 --- a/src/engine/SCons/Builder.py +++ b/src/engine/SCons/Builder.py @@ -66,10 +66,16 @@ execute_actions = 1; def Action(act): """A factory for action objects.""" + if type(act) == types.StringType: + l = string.split(act, "\n") + if len(l) > 1: + act = l if type(act) == types.FunctionType: return FunctionAction(act) elif type(act) == types.StringType: return CommandAction(act) + elif type(act) == types.ListType: + return ListAction(act) else: return None @@ -119,3 +125,12 @@ class FunctionAction(ActionBase): # XXX: WHAT SHOULD WE PRINT HERE? if execute_actions: self.function(kw) + +class ListAction(ActionBase): + """Class for lists of other actions.""" + def __init__(self, list): + self.list = map(lambda x: Action(x), list) + + def execute(self, **kw): + for l in self.list: + apply(l.execute, (), kw) |
