diff options
author | William Deegan <bill@baddogconsulting.com> | 2019-04-28 02:53:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-28 02:53:01 (GMT) |
commit | d3721490e0835944b3575301b77f4010ed0323fa (patch) | |
tree | 29c7e22d7b5cfb4d546e869b8679a1373f2153fe /src/engine | |
parent | fdea3fb50bc90bcf8500bcb7321a3d25d2023177 (diff) | |
parent | 3a1be411be803224f17702a968fe35d9c3cc6a89 (diff) | |
download | SCons-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__.py | 19 |
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. |