summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-03-29 19:30:48 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2018-11-12 16:41:24 (GMT)
commit57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54 (patch)
treeff452a08dc8f3088b531cad91ba83872d9ede02b /src
parentc8b4d3bc32476914aefa7cc50c6376d401478a01 (diff)
downloadSCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.zip
SCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.tar.gz
SCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.tar.bz2
Modified fix for issue #2980 where the more complicated logic is only applied when the number of children in the current build doesn't match the number in the previous build as retrieved from the sconsign file.
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt6
-rw-r--r--src/engine/SCons/Node/__init__.py12
2 files changed, 10 insertions, 8 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index bd1e56a..e2fb598 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -15,7 +15,7 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
- Fix the PATH created by scons.bat (and other .bat files) to provide a normalized
PATH. Some pythons in the 3.6 series are no longer able to handle paths which
have ".." in them and end up crashing. This is done by cd'ing into the directory
- we want to add to the path and then useing %CD% to give us the normalized directory
+ we want to add to the path and then using %CD% to give us the normalized directory
See bug filed under Python 3.6: https://bugs.python.org/issue32457.
Note: On Win32 PATH's which have not been normalized may cause undefined behavior
by other executables being run by SCons (or any subprocesses of executables being run by SCons).
@@ -55,7 +55,9 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
- Fix new logic which populates JAVAINCLUDES to handle the case where javac is not found.
- Fix GH Issue #3225 SCons.Util.Flatten() doesn't handle MappingView's produced by dictionary as return
values from dict().{items(), keys(), values()}.
-
+ - Fix issue #2980 with credit to William Blevins. This is an issue where using TimeStamp-MD5 Decider
+ and CacheDir can yield incorrect md5's being written into the .sconsign.
+
From Andrew Featherstone
- Removed unused --warn options from the man page and source code.
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index 22f1be5..cdaccca 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -1491,13 +1491,11 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
result = False
bi = node.get_stored_info().binfo
- # then = bi.bsourcesigs + bi.bdependsigs + bi.bimplicitsigs
+ then = bi.bsourcesigs + bi.bdependsigs + bi.bimplicitsigs
# TODO: Can we move this into the if diff below?
- dmap = self._build_dependency_map(bi)
children = self.children()
- # diff = len(children) - len(then)
- diff = len(children) - len(dmap)
+ diff = len(children) - len(then)
if diff:
# The old and new dependency lists are different lengths.
# This always indicates that the Node must be rebuilt.
@@ -1508,11 +1506,13 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
# # of the loop below that updates node information.
# then.extend([None] * diff)
# if t: Trace(': old %s new %s' % (len(then), len(children)))
+ dmap = self._build_dependency_map(bi)
+ # Now build new then based on map built above.
+ then = self._get_previous_signatures(dmap, children)
+
result = True
- # Now build new then based on map built above.
- then = self._get_previous_signatures(dmap, children)
for child, prev_ni in zip(children, then):
if _decider_map[child.changed_since_last_build](child, self, prev_ni):