diff options
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 5 | ||||
-rw-r--r-- | src/engine/SCons/Node/FSTests.py | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index bc9e682..1af739f 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -1497,11 +1497,12 @@ class File(Base): path = scanner.path(env, target.cwd) target.scanner_paths[scanner] = path + key = str(id(env)) + '|' + str(id(scanner)) + '|' + string.join(map(str,path), ':') try: - includes = self.found_includes[path] + includes = self.found_includes[key] except KeyError: includes = scanner(self, env, path) - self.found_includes[path] = includes + self.found_includes[key] = includes return includes diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 747fdf1..5ed377c 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -909,6 +909,14 @@ class FSTestCase(unittest.TestCase): assert deps == [xyz], deps assert s.call_count == 2, s.call_count + env2 = Environment() + + deps = f12.get_found_includes(env2, s, t1) + assert deps == [xyz], deps + assert s.call_count == 3, s.call_count + + + # Make sure we can scan this file even if the target isn't # a file that has a scanner (it might be an Alias, e.g.). class DummyNode: |