summaryrefslogtreecommitdiffstats
path: root/llvm/utils
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2011-11-05 04:07:49 +0000
committerDaniel Dunbar <daniel@zuster.org>2011-11-05 04:07:49 +0000
commit0edba5c989ddb0527984491a9481d0e1f2d40621 (patch)
treebdd24c7bd7721031e1dcdbd04cd46af506d23efb /llvm/utils
parent9057a3de5a107080509c7cc524fc94d06f9b7108 (diff)
downloadbcm5719-llvm-0edba5c989ddb0527984491a9481d0e1f2d40621.tar.gz
bcm5719-llvm-0edba5c989ddb0527984491a9481d0e1f2d40621.zip
utils/llvm-build: Ensure output directory exists for tools which write various fragments.
llvm-svn: 143782
Diffstat (limited to 'llvm/utils')
-rw-r--r--llvm/utils/llvm-build/llvmbuild/main.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/utils/llvm-build/llvmbuild/main.py b/llvm/utils/llvm-build/llvmbuild/main.py
index 5932fb98d6f..f6355261ceb 100644
--- a/llvm/utils/llvm-build/llvmbuild/main.py
+++ b/llvm/utils/llvm-build/llvmbuild/main.py
@@ -31,6 +31,17 @@ def mk_quote_string_for_target(value):
# The only quoting we currently perform is for ':', to support msys users.
return value.replace(":", "\\:")
+def make_install_dir(path):
+ """
+ make_install_dir(path) -> None
+
+ Create the given directory path for installation, including any parents.
+ """
+
+ # os.makedirs considers it an error to be called with an existant path.
+ if not os.path.exists(path):
+ os.makedirs(path)
+
###
class LLVMProjectInfo(object):
@@ -276,6 +287,7 @@ class LLVMProjectInfo(object):
for _,_,deps in entries) + 1
# Write out the library table.
+ make_install_dir(os.path.dirname(output_path))
f = open(output_path, 'w')
print >>f, """\
//===- llvm-build generated file --------------------------------*- C++ -*-===//
@@ -360,6 +372,7 @@ class LLVMProjectInfo(object):
dependencies = list(self.get_fragment_dependencies())
# Write out the CMake fragment.
+ make_install_dir(os.path.dirname(output_path))
f = open(output_path, 'w')
# Write the header.
@@ -419,6 +432,7 @@ configure_file(\"%s\"
dependencies = list(self.get_fragment_dependencies())
# Write out the Makefile fragment.
+ make_install_dir(os.path.dirname(output_path))
f = open(output_path, 'w')
# Write the header.
OpenPOWER on IntegriCloud