summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-11-10 02:37:58 (GMT)
committerSteven Knight <knight@baldmt.com>2004-11-10 02:37:58 (GMT)
commit0277e19ef2c747b4bb00233c172d407aeeb1eab8 (patch)
tree409d1eece3864aee5457c0a075d2f4e8d743deae
parent81262f1b830ceb37dbec4ff39790876b55f0d2f7 (diff)
downloadSCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.zip
SCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.tar.gz
SCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.tar.bz2
Add a genstring() method to the ListAction class.
-rw-r--r--src/engine/SCons/Action.py6
-rw-r--r--src/engine/SCons/ActionTests.py9
2 files changed, 11 insertions, 4 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py
index 5f89cc2..3b62702 100644
--- a/src/engine/SCons/Action.py
+++ b/src/engine/SCons/Action.py
@@ -575,6 +575,12 @@ class ListAction(ActionBase):
return Action(x)
self.list = map(list_of_actions, list)
+ def genstring(self, target, source, env):
+ return string.join(map(lambda a, t=target, s=source, e=env:
+ a.genstring(t, s, e),
+ self.list),
+ '\n')
+
def __str__(self):
return string.join(map(str, self.list), '\n')
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index e996f61..74812df 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -1408,11 +1408,12 @@ class ListActionTestCase(unittest.TestCase):
"""
def f(target,source,env):
pass
- def g(target,source,env):
- pass
+ def g(target,source,env,for_signature):
+ return 'generated %s %s' % (target[0], source[0])
+ g = SCons.Action.CommandGenerator(g)
a = SCons.Action.ListAction([f, g, "XXX", f])
- s = a.genstring([], [], Environment())
- assert s == "f(target, source, env)\ng(target, source, env)\nXXX\nf(target, source, env)", s
+ s = a.genstring(['foo.x'], ['bar.y'], Environment())
+ assert s == "f(target, source, env)\ngenerated foo.x bar.y\nXXX\nf(target, source, env)", s
def test_execute(self):
"""Test executing a list of subsidiary Actions