summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2019-04-28 02:53:01 (GMT)
committerGitHub <noreply@github.com>2019-04-28 02:53:01 (GMT)
commitd3721490e0835944b3575301b77f4010ed0323fa (patch)
tree29c7e22d7b5cfb4d546e869b8679a1373f2153fe /src/engine
parentfdea3fb50bc90bcf8500bcb7321a3d25d2023177 (diff)
parent3a1be411be803224f17702a968fe35d9c3cc6a89 (diff)
downloadSCons-d3721490e0835944b3575301b77f4010ed0323fa.zip
SCons-d3721490e0835944b3575301b77f4010ed0323fa.tar.gz
SCons-d3721490e0835944b3575301b77f4010ed0323fa.tar.bz2
Merge pull request #3341 from bdbaddog/enhanced_debug_explain
Enhanced debug explain
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Node/__init__.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index 4280079..4c35f4c 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -50,6 +50,11 @@ import collections
import copy
from itertools import chain
+try:
+ from itertools import zip_longest
+except ImportError:
+ from itertools import izip_longest as zip_longest
+
import SCons.Debug
from SCons.Debug import logInstanceCreation
import SCons.Executor
@@ -1686,9 +1691,16 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
lines.append("`%s' changed\n" % stringify(k))
if len(lines) == 0 and old_bkids != new_bkids:
- lines.append("the dependency order changed:\n" +
- "%sold: %s\n" % (' '*15, list(map(stringify, old_bkids))) +
- "%snew: %s\n" % (' '*15, list(map(stringify, new_bkids))))
+ lines.append("the dependency order changed:\n")
+ lines.append("->Sources\n")
+ for (o,n) in zip_longest(old.bsources, new.bsources, fillvalue=None):
+ lines.append("Old:%s\tNew:%s\n"%(o,n))
+ lines.append("->Depends\n")
+ for (o,n) in zip_longest(old.bdepends, new.bdepends, fillvalue=None):
+ lines.append("Old:%s\tNew:%s\n"%(o,n))
+ lines.append("->Implicit\n")
+ for (o,n) in zip_longest(old.bimplicit, new.bimplicit, fillvalue=None):
+ lines.append("Old:%s\tNew:%s\n"%(o,n))
if len(lines) == 0:
def fmt_with_title(title, strlines):
@@ -1731,7 +1743,6 @@ class Walker(object):
This is depth-first, children are visited before the parent.
The Walker object can be initialized with any node, and
returns the next node on the descent with each get_next() call.
- 'kids_func' is an optional function that will be called to
get the children of a node instead of calling 'children'.
'cycle_func' is an optional function that will be called
when a cycle is detected.