diff options
| author | Steven Knight <knight@baldmt.com> | 2005-08-13 19:09:11 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2005-08-13 19:09:11 (GMT) |
| commit | 1a3785fc03ffde5ea3102d7683dcabe4b6fd47c0 (patch) | |
| tree | deb438a6f6be998a4f70d0af8cdb937fc2788e51 /src/engine/SCons/Node | |
| parent | e7bc4330bd90e5250174c41023f1a2b671479857 (diff) | |
| download | SCons-1a3785fc03ffde5ea3102d7683dcabe4b6fd47c0.zip SCons-1a3785fc03ffde5ea3102d7683dcabe4b6fd47c0.tar.gz SCons-1a3785fc03ffde5ea3102d7683dcabe4b6fd47c0.tar.bz2 | |
Add a Dirs() function that can be used in hBcexpansions. (Stanislav Baranov)
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 | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index dbe7749..d073d53 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -1614,6 +1614,11 @@ class File(Base): the SConscript directory of this file.""" return self.fs.Dir(name, self.cwd) + def Dirs(self, pathlist): + """Create a list of directories relative to the SConscript + directory of this file.""" + return map(lambda p, s=self: s.Dir(p), pathlist) + def File(self, name): """Create a file node named 'name' relative to the SConscript directory of this file.""" diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index a8b5b6d..c8c8ad7 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -1808,6 +1808,23 @@ class EntryTestCase(_tempdirTestCase): self.fs.Entry('#topdir') self.fs.Entry('#topdir/a/b/c') + + +class FileTestCase(_tempdirTestCase): + + def test_Dirs(self): + """Test the File.Dirs() method""" + fff = self.fs.File('subdir/fff') + # This simulates that the SConscript file that defined + # fff is in subdir/. + fff.cwd = self.fs.Dir('subdir') + d1 = self.fs.Dir('subdir/d1') + d2 = self.fs.Dir('subdir/d2') + dirs = fff.Dirs(['d1', 'd2']) + assert dirs == [d1, d2], map(str, dirs) + + + class RepositoryTestCase(_tempdirTestCase): def setUp(self): @@ -2798,6 +2815,7 @@ if __name__ == "__main__": BaseTestCase, BuildInfoTestCase, EntryTestCase, + FileTestCase, NodeInfoTestCase, FSTestCase, DirTestCase, |
