summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/FS.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r--src/engine/SCons/Node/FS.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index d5247f7..b805d4a 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -820,7 +820,7 @@ class File(Entry):
def scanner_key(self):
return os.path.splitext(self.name)[1]
- def __createDir(self):
+ def _createDir(self):
# ensure that the directories for this node are
# created.
@@ -830,7 +830,10 @@ class File(Entry):
if parent.exists():
break
listDirs.append(parent)
- parent = parent.up()
+ p = parent.up()
+ if isinstance(p, ParentOfRoot):
+ raise SCons.Errors.StopError, parent.path
+ parent = p
listDirs.reverse()
for dirnode in listDirs:
try:
@@ -862,7 +865,11 @@ class File(Entry):
if hasattr(self, '_exists'):
delattr(self, '_exists')
else:
- self.__createDir()
+ try:
+ self._createDir()
+ except SCons.Errors.StopError, drive:
+ desc = "No drive `%s' for target `%s'." % (drive, self)
+ raise SCons.Errors.StopError, desc
def remove(self):
"""Remove this file."""
@@ -880,7 +887,7 @@ class File(Entry):
os.unlink(self.abspath)
except OSError:
pass
- self.__createDir()
+ self._createDir()
file_link(src.abspath, self.abspath)
self.created = 1