diff options
Diffstat (limited to 'src/engine/SCons/Node/__init__.py')
-rw-r--r-- | src/engine/SCons/Node/__init__.py | 22 |
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): |