summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Node/__init__.py')
-rw-r--r--src/engine/SCons/Node/__init__.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index ddcddfb..0682c7f 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -76,6 +76,28 @@ class Node:
target = self, source = self.sources)
if stat != 0:
raise BuildError(node = self, stat = stat)
+
+ # If we succesfully build a node, then we need to rescan for
+ # implicit dependencies, since it might have changed on us.
+
+ # XXX Modify this so we only rescan using the scanner(s) relevant
+ # to this build.
+ for scn in self.scanners:
+ try:
+ del self.scanned[scn]
+ except KeyError:
+ pass
+
+ self.scan()
+
+ for scn in self.scanners:
+ try:
+ for dep in self.implicit[scn]:
+ w=Walker(dep)
+ while not w.is_done():
+ w.next().scan()
+ except KeyError:
+ pass
return stat
def builder_set(self, builder):