1c383a500aa59423264811be3874461bf8adbfea0Zonr Chang/* 2c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * Copyright 2010, The Android Open Source Project 3c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * 4c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * Licensed under the Apache License, Version 2.0 (the "License"); 5c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * you may not use this file except in compliance with the License. 6c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * You may obtain a copy of the License at 7c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * 8c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * http://www.apache.org/licenses/LICENSE-2.0 9c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * 10c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * Unless required by applicable law or agreed to in writing, software 11c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * distributed under the License is distributed on an "AS IS" BASIS, 12c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * See the License for the specific language governing permissions and 14c383a500aa59423264811be3874461bf8adbfea0Zonr Chang * limitations under the License. 15c383a500aa59423264811be3874461bf8adbfea0Zonr Chang */ 16c383a500aa59423264811be3874461bf8adbfea0Zonr Chang 178c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang#include "slang_utils.h" 188c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang 19e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines#include <string> 20e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines 21a1f95ee8df425089100148a42954cf61dc285015Stephen Hines#include "llvm/ADT/StringRef.h" 22a1f95ee8df425089100148a42954cf61dc285015Stephen Hines#include "llvm/Support/FileSystem.h" 238c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang 24e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hinesnamespace slang { 258c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang 268c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Changbool SlangUtils::CreateDirectoryWithParents(llvm::StringRef Dir, 278c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang std::string* Error) { 287ac9d0de26d325071ad3f26f8d34514efca2d3d6Stephen Hines std::error_code EC = llvm::sys::fs::create_directories(Dir); 297ac9d0de26d325071ad3f26f8d34514efca2d3d6Stephen Hines if (EC) { 30a1f95ee8df425089100148a42954cf61dc285015Stephen Hines Error->assign(EC.message()); 31a1f95ee8df425089100148a42954cf61dc285015Stephen Hines return false; 32a1f95ee8df425089100148a42954cf61dc285015Stephen Hines } 33a1f95ee8df425089100148a42954cf61dc285015Stephen Hines return true; 348c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang} 35e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines 36e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines} // namespace slang 37