diff options
author | Steven Knight <knight@baldmt.com> | 2003-08-09 03:30:48 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-08-09 03:30:48 (GMT) |
commit | ef6d3c2883fc43048e4eb5418eeb082d58b9d6cb (patch) | |
tree | 6b82fbae7e677011698bc39debd81d1572ff5c8c /src/engine/SCons/Node | |
parent | 2e861a0422e5330249e360b5098b3ad00d26b5e9 (diff) | |
download | SCons-ef6d3c2883fc43048e4eb5418eeb082d58b9d6cb.zip SCons-ef6d3c2883fc43048e4eb5418eeb082d58b9d6cb.tar.gz SCons-ef6d3c2883fc43048e4eb5418eeb082d58b9d6cb.tar.bz2 |
Multi-level build dir with Object() and duplicate=0.
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 4 | ||||
-rw-r--r-- | src/engine/SCons/Node/FSTests.py | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index d12a504..249c8c6 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -1455,6 +1455,10 @@ class File(Base): return dir, os.path.join(dir, bsig) return None, None + def target_from_source(self, prefix, suffix, splitext=SCons.Util.splitext): + return self.dir.File(prefix + splitext(self.name)[0] + suffix) + + default_fs = FS() diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index d651e1c..17d037d 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -1074,6 +1074,18 @@ class FSTestCase(unittest.TestCase): f.get_string(0) assert f.get_string(1) == 'baz', f.get_string(1) + x = fs.File('x.c') + t = x.target_from_source('pre-', '-suf') + assert str(t) == 'pre-x-suf', str(t) + + y = fs.File('dir/y') + t = y.target_from_source('pre-', '-suf') + assert str(t) == 'dir/pre-y-suf', str(t) + + z = fs.File('zz') + t = z.target_from_source('pre-', '-suf', lambda x: x[:-1]) + assert str(t) == 'pre-z-suf', str(t) + class EntryTestCase(unittest.TestCase): def runTest(self): """Test methods specific to the Entry sub-class. |