summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-05-14 21:08:38 (GMT)
committerSteven Knight <knight@baldmt.com>2002-05-14 21:08:38 (GMT)
commit126d1b3bd27c4ba02c7824ebd9745229d658de40 (patch)
treeb569101f2245e6aba3381fe1b9bbddf2447f4cfb /src/engine/SCons
parentcc9bcd4f85a559c8d1cdbfed8ce8991cdb281367 (diff)
downloadSCons-126d1b3bd27c4ba02c7824ebd9745229d658de40.zip
SCons-126d1b3bd27c4ba02c7824ebd9745229d658de40.tar.gz
SCons-126d1b3bd27c4ba02c7824ebd9745229d658de40.tar.bz2
Fix for relative CPPPATH when BuildDir() is in use. (Charles Crain)
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Node/FS.py15
-rw-r--r--src/engine/SCons/Node/FSTests.py6
2 files changed, 21 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 6ccd146..61cd80c 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -499,6 +499,21 @@ class Dir(Entry):
self._sconsign = SCons.Sig.SConsignFile(self)
return self._sconsign
+ def __str__(self):
+ # Reimplemented from Entry since, unlike for
+ # Entry and File, we want to return the source
+ # path *even if* the builder is non-zero
+ # (which it always is for a directory)
+ if self.duplicate:
+ return self.path
+ else:
+ return self.srcpath
+
+ def exists(self):
+ # Again, directories are special...we don't care if their
+ # source path exists, we only care about the path.
+ return os.path.exists(self.path)
+
# XXX TODO?
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index ef0c72b..ee82563 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -108,6 +108,12 @@ class BuildDirTestCase(unittest.TestCase):
assert f2.srcpath == os.path.normpath('src/test1'), str(f2)
assert str(f2) == os.path.normpath('build/var2/test1'), str(f2)
+ d1 = fs.Dir('build/var1')
+ d2 = fs.Dir('build/var2')
+
+ assert str(d1) == 'src', str(d1)
+ assert str(d2) == os.path.normpath('build/var2'), str(d2)
+
# Test to see if file_link() works...
test=TestCmd(workdir='')
test.subdir('src','build')