summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2019-04-02 21:24:58 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2019-04-02 21:24:58 (GMT)
commit0b9d8672365b01468fca5ba95594b92d307c94e9 (patch)
tree19abf0c29a77b17bc4df08aa6f2cddbe0f7ad110 /src/engine
parentd79290b03480e810acca5a61368d7b254d22fda5 (diff)
downloadSCons-0b9d8672365b01468fca5ba95594b92d307c94e9.zip
SCons-0b9d8672365b01468fca5ba95594b92d307c94e9.tar.gz
SCons-0b9d8672365b01468fca5ba95594b92d307c94e9.tar.bz2
Move target_peers to slots from attributes
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Builder.py7
-rw-r--r--src/engine/SCons/Node/__init__.py3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 010d5ff..bc243dd 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -563,6 +563,13 @@ class BuilderBase(object):
tlist, slist = self._create_nodes(env, target, source)
+ # If there is more than one target ensure that if we need to reset
+ # the implicit list to new scan of dependency all targets implicit lists
+ # are cleared. (SCons GH Issue #2811 and MongoDB SERVER-33111)
+ if len(tlist) > 1:
+ for t in tlist:
+ t.target_peers = tlist
+
# Check for errors with the specified target/source lists.
_node_errors(self, env, tlist, slist)
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index e4c8e6c..8e7699b 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -529,6 +529,7 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
__slots__ = ['sources',
'sources_set',
+ 'target_peers',
'_specific_sources',
'depends',
'depends_set',
@@ -797,7 +798,7 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
# https://github.com/SCons/scons/issues/2811
# https://jira.mongodb.org/browse/SERVER-33111
try:
- for peer in parent.attributes.target_peers:
+ for peer in parent.target_peers:
peer.implicit = None
except AttributeError as e:
pass