summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Executor.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-09-18 23:02:56 (GMT)
committerSteven Knight <knight@baldmt.com>2004-09-18 23:02:56 (GMT)
commit07ba45e583a9f03e9a7b91212e165d45d1df1978 (patch)
tree96f741d3e308c022c801036190067eab0d115b20 /src/engine/SCons/Executor.py
parent0d70cbb58a33aeca99b6e0b4d2f11c93a92dd670 (diff)
downloadSCons-07ba45e583a9f03e9a7b91212e165d45d1df1978.zip
SCons-07ba45e583a9f03e9a7b91212e165d45d1df1978.tar.gz
SCons-07ba45e583a9f03e9a7b91212e165d45d1df1978.tar.bz2
Fix --debug=explain when the action is a Python function.
Diffstat (limited to 'src/engine/SCons/Executor.py')
-rw-r--r--src/engine/SCons/Executor.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/engine/SCons/Executor.py b/src/engine/SCons/Executor.py
index b3e6f88..bfb1a65 100644
--- a/src/engine/SCons/Executor.py
+++ b/src/engine/SCons/Executor.py
@@ -137,6 +137,26 @@ class Executor:
self.get_build_env())
return self.string
+ def strfunction(self):
+ try:
+ return self.string
+ except AttributeError:
+ action = self.action
+ build_env = self.get_build_env()
+ if action.strfunction is None:
+ # This instance has strfunction set to None to suppress
+ # printing of the action. Call the method directly
+ # through the class instead.
+ self._strfunc = action.__class__.strfunction(action,
+ self.targets,
+ self.sources,
+ build_env)
+ else:
+ self._strfunc = action.strfunction(self.targets,
+ self.sources,
+ build_env)
+ return self._strfunc
+
def get_raw_contents(self):
"""Fetch the raw signature contents. This, along with
get_contents(), is the real reason this class exists, so we can