summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Defaults.py
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2008-12-11 02:59:40 (GMT)
committerGary Oberbrunner <garyo@oberbrunner.com>2008-12-11 02:59:40 (GMT)
commit0e4e4a675e9eec8ea69fa98038b13ddfeea4ebd8 (patch)
tree3f482bc6c57e4bec2e00df8f5582683f264842b2 /src/engine/SCons/Defaults.py
parentb4d7c306c8e6b42a04b71dacb7ce829713e9d106 (diff)
downloadSCons-0e4e4a675e9eec8ea69fa98038b13ddfeea4ebd8.zip
SCons-0e4e4a675e9eec8ea69fa98038b13ddfeea4ebd8.tar.gz
SCons-0e4e4a675e9eec8ea69fa98038b13ddfeea4ebd8.tar.bz2
Fix issue #1249 by making Mkdir action (actually mkdir_func) succeed if the underlying mkdir throws EEXIST and there is an existing dir there already.
Diffstat (limited to 'src/engine/SCons/Defaults.py')
-rw-r--r--src/engine/SCons/Defaults.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index b790a49..5d78215 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -38,6 +38,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
import os.path
+import errno
import shutil
import stat
import string
@@ -220,7 +221,14 @@ def mkdir_func(dest):
if not SCons.Util.is_List(dest):
dest = [dest]
for entry in dest:
- os.makedirs(str(entry))
+ try:
+ os.makedirs(str(entry))
+ except os.error, e:
+ p = str(entry)
+ if e[0] == errno.EEXIST and os.path.isdir(str(entry)):
+ pass
+ else:
+ raise
Mkdir = ActionFactory(mkdir_func,
lambda dir: 'Mkdir(%s)' % get_paths_str(dir))