slang_utils.cpp revision a1f95ee8df425089100148a42954cf61dc285015
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" 23a1f95ee8df425089100148a42954cf61dc285015Stephen Hines#include "llvm/Support/system_error.h" 248c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang 25e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hinesnamespace slang { 268c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang 278c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Changbool SlangUtils::CreateDirectoryWithParents(llvm::StringRef Dir, 288c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang std::string* Error) { 29a1f95ee8df425089100148a42954cf61dc285015Stephen Hines llvm::error_code EC = llvm::sys::fs::create_directories(Dir); 30a1f95ee8df425089100148a42954cf61dc285015Stephen Hines if (EC != llvm::errc::success) { 31a1f95ee8df425089100148a42954cf61dc285015Stephen Hines Error->assign(EC.message()); 32a1f95ee8df425089100148a42954cf61dc285015Stephen Hines return false; 33a1f95ee8df425089100148a42954cf61dc285015Stephen Hines } 34a1f95ee8df425089100148a42954cf61dc285015Stephen Hines return true; 358c6d9b2d36ed2d6d811279fd9bddc05fffe16803Zonr Chang} 36e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines 37e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines} // namespace slang 38