summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/FS.py5
-rw-r--r--src/engine/SCons/Node/FSTests.py8
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: