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