diff options
| author | Steven Knight <knight@baldmt.com> | 2001-12-11 03:22:06 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-12-11 03:22:06 (GMT) |
| commit | 760ec2007ab98e6528dafba7d83e786d3e6fdda1 (patch) | |
| tree | 17b556384203a53a84a525538a94f62167cc06eb /src/engine/SCons/Node | |
| parent | c1b33d572499fb75730be8630db33e50e87f834d (diff) | |
| download | SCons-760ec2007ab98e6528dafba7d83e786d3e6fdda1.zip SCons-760ec2007ab98e6528dafba7d83e786d3e6fdda1.tar.gz SCons-760ec2007ab98e6528dafba7d83e786d3e6fdda1.tar.bz2 | |
Add Scanner objects to source files when we first find them, not later when they're just going to be scanned.
Diffstat (limited to 'src/engine/SCons/Node')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 18 |
2 files changed, 16 insertions, 8 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index a898f01..b170ef6 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -468,11 +468,7 @@ class File(Entry): def scan(self): if not self.scanned and self.env: if self.scanner: - scanner = self.scanner - else: - scanner = self.env.get_scanner(os.path.splitext(self.name)[1]) - if scanner: - self.add_dependency(scanner.scan(self.path_, self.env)) + self.add_dependency(self.scanner.scan(self.path, self.env)) self.scanned = 1 def __createDir(self): diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index d9d128e..fc58c4a 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -38,9 +38,17 @@ class Builder: built_it = 1 return 0 +scanner_count = 0 + class Scanner: + def __init__(self): + global scanner_count + scanner_count = scanner_count + 1 + self.hash = scanner_count def scan(self, filename, env): return [SCons.Node.FS.default_fs.File(filename)] + def __hash__(self): + return self.hash class Environment: def __init__(self): @@ -296,11 +304,15 @@ class FSTestCase(unittest.TestCase): f1.scanner = Scanner() f1.scan() assert f1.depends[0].path_ == os.path.join("d1", "f1") - f1.scanner = None - f1.depends = [] - f1.scanned = 0 + f1.scanner = None + f1.scanned = None f1.scan() assert f1.depends[0].path_ == os.path.join("d1", "f1") + f1.scanner = None + f1.scanned = None + f1.depends = [] + f1.scan() + assert not f1.depends # Test building a file whose directory is not there yet... f1 = fs.File(test.workpath("foo/bar/baz/ack")) |
