diff options
| author | Steven Knight <knight@baldmt.com> | 2005-12-04 17:10:10 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2005-12-04 17:10:10 (GMT) |
| commit | 4b78cf9715b9c9bf96cdf909828533fc8eca0827 (patch) | |
| tree | d89b1d618fae061c67deb82ff145a0e666eadd9e /src/engine/SCons/Node | |
| parent | 6a4fd83b9e9d4533017fa4e1c7233f72b42555c8 (diff) | |
| download | SCons-4b78cf9715b9c9bf96cdf909828533fc8eca0827.zip SCons-4b78cf9715b9c9bf96cdf909828533fc8eca0827.tar.gz SCons-4b78cf9715b9c9bf96cdf909828533fc8eca0827.tar.bz2 | |
Refactor to let specific Node types override scanner selection, and to add a separate in-memory Directory scanner (to be used later).
Diffstat (limited to 'src/engine/SCons/Node')
| -rw-r--r-- | src/engine/SCons/Node/NodeTests.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/Node/__init__.py | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py index 8c2e6ea..11c57a9 100644 --- a/src/engine/SCons/Node/NodeTests.py +++ b/src/engine/SCons/Node/NodeTests.py @@ -1030,6 +1030,12 @@ class NodeTestCase(unittest.TestCase): """Test that a scanner_key() method exists""" assert SCons.Node.Node().scanner_key() == None + def test_select_scanner(self): + """Test the base select_scanner() method returns its scanner""" + scanner = Scanner() + s = SCons.Node.Node().select_scanner(scanner) + assert scanner is s, s + def test_children(self): """Test fetching the non-ignored "children" of a Node. """ diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py index e73e5f3..a77b09b 100644 --- a/src/engine/SCons/Node/__init__.py +++ b/src/engine/SCons/Node/__init__.py @@ -442,7 +442,7 @@ class Node: # Give the scanner a chance to select a more specific scanner # for this Node. - scanner = scanner.select(self) + #scanner = scanner.select(self) nodes = [self] seen = {} @@ -556,6 +556,16 @@ class Node: def scanner_key(self): return None + def select_scanner(self, scanner): + """Selects a scanner for this Node. + + This is a separate method so it can be overridden by Node + subclasses (specifically, Node.FS.Dir) that *must* use their + own Scanner and don't select one the Scanner.Selector that's + configured for the target. + """ + return scanner.select(self) + def env_set(self, env, safe=0): if safe and self.env: return |
