summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-06-17 04:31:46 (GMT)
committerSteven Knight <knight@baldmt.com>2004-06-17 04:31:46 (GMT)
commit5f1ca10deda557947d8669098fdce1852b38b81f (patch)
treee2ae792b53a4e56ff10abc093b711645fe41dd95
parentf0bf250b85abbe23faa7eeff0e53beb0613a2c6f (diff)
downloadSCons-5f1ca10deda557947d8669098fdce1852b38b81f.zip
SCons-5f1ca10deda557947d8669098fdce1852b38b81f.tar.gz
SCons-5f1ca10deda557947d8669098fdce1852b38b81f.tar.bz2
Fix a problem with --debug=explain when actions change due to expanded construction variables.
-rw-r--r--src/engine/SCons/Node/__init__.py13
-rw-r--r--test/explain.py11
2 files changed, 14 insertions, 10 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index 64226a6..51e6628 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -563,8 +563,8 @@ class Node:
binfo.bimplicitsigs = implicitsigs
if has_builder:
- binfo.bact = str(executor)
- binfo.bactsig = calc.module.signature(executor)
+ binfo.bact = executor.get_contents()
+ binfo.bactsig = bactsig
binfo.bsig = calc.module.collect(filter(None, sigs))
@@ -901,6 +901,11 @@ class Node:
elif osig[k] != nsig[k]:
lines.append("`%s' changed\n" % k)
+ if len(lines) == 0 and old_bkids != new_bkids:
+ lines.append("the dependency order changed:\n" +
+ "%sold: %s\n" % (' '*15, old_bkids) +
+ "%snew: %s\n" % (' '*15, new_bkids))
+
if len(lines) == 0:
newact, newactsig = self.binfo.bact, self.binfo.bactsig
if old.bact != newact:
@@ -909,9 +914,7 @@ class Node:
"%snew: %s\n" % (' '*15, newact))
if len(lines) == 0:
- lines.append("the dependency order changed:\n" +
- "%sold: %s\n" % (' '*15, old_bkids) +
- "%snew: %s\n" % (' '*15, new_bkids))
+ return "rebuilding `%s' for unknown reasons" % self
preamble = "rebuilding `%s' because" % self
if len(lines) == 1:
diff --git a/test/explain.py b/test/explain.py
index 4526ca9..d614065 100644
--- a/test/explain.py
+++ b/test/explain.py
@@ -40,7 +40,8 @@ test = TestSCons.TestSCons()
test.subdir('work1', ['work1', 'src'], ['work1', 'src', 'subdir'],
'work2', ['work2', 'src'], ['work2', 'src', 'subdir'],
'work3', ['work3', 'src'], ['work3', 'src', 'subdir'],
- 'work4', ['work4', 'src'], ['work4', 'src', 'subdir'])
+ 'work4', ['work4', 'src'], ['work4', 'src', 'subdir'],
+ 'work5', ['work5', 'src'], ['work5', 'src', 'subdir'])
subdir_file6 = os.path.join('subdir', 'file6')
subdir_file6_in = os.path.join('subdir', 'file6.in')
@@ -110,7 +111,7 @@ Import("env")
env.Cat('file1', 'file1.in')
env.Cat('file2', 'file2.k')
env.Cat('file3', ['xxx', 'yyy', 'zzz'])
-env.Command('file4', 'file4.in', r"%s %s $TARGET - $SOURCES")
+env.Command('file4', 'file4.in', r"%s %s $TARGET $FILE4FLAG $SOURCES", FILE4FLAG="-")
env.Cat('file5', 'file5.k')
env.Cat('subdir/file6', 'subdir/file6.in')
""" % (python, cat_py))
@@ -299,13 +300,13 @@ test.must_match(['work1', 'src', 'file3'], "zzz 2\nyyy 2\nxxx 1\n")
#
test.write(['work1', 'src', 'SConscript'], """\
Import("env")
-env.Command('file4', 'file4.in', r"%s %s $TARGET $SOURCES")
+env.Command('file4', 'file4.in', r"%s %s $TARGET $FILE4FLAG $SOURCES", FILE4FLAG="")
""" % (python, cat_py))
test.run(chdir='work1/src',arguments=args, stdout=test.wrap_stdout("""\
scons: rebuilding `file4' because the build action changed:
- old: %s %s $TARGET - $SOURCES
- new: %s %s $TARGET $SOURCES
+ old: %s %s file4 - file4.in
+ new: %s %s file4 file4.in
%s %s file4 file4.in
""" % (python, cat_py,
python, cat_py,