summaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Support/Program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/Support/Program.cpp')
-rw-r--r--contrib/llvm/lib/Support/Program.cpp82
1 files changed, 0 insertions, 82 deletions
diff --git a/contrib/llvm/lib/Support/Program.cpp b/contrib/llvm/lib/Support/Program.cpp
deleted file mode 100644
index 0a9363c59fc6..000000000000
--- a/contrib/llvm/lib/Support/Program.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- Program.cpp - Implement OS Program Concept --------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the operating system Program concept.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Program.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Config/llvm-config.h"
-#include <system_error>
-using namespace llvm;
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only TRULY operating system
-//=== independent code.
-//===----------------------------------------------------------------------===//
-
-static bool Execute(ProcessInfo &PI, StringRef Program,
- ArrayRef<StringRef> Args, Optional<ArrayRef<StringRef>> Env,
- ArrayRef<Optional<StringRef>> Redirects,
- unsigned MemoryLimit, std::string *ErrMsg);
-
-int sys::ExecuteAndWait(StringRef Program, ArrayRef<StringRef> Args,
- Optional<ArrayRef<StringRef>> Env,
- ArrayRef<Optional<StringRef>> Redirects,
- unsigned SecondsToWait, unsigned MemoryLimit,
- std::string *ErrMsg, bool *ExecutionFailed) {
- assert(Redirects.empty() || Redirects.size() == 3);
- ProcessInfo PI;
- if (Execute(PI, Program, Args, Env, Redirects, MemoryLimit, ErrMsg)) {
- if (ExecutionFailed)
- *ExecutionFailed = false;
- ProcessInfo Result = Wait(
- PI, SecondsToWait, /*WaitUntilTerminates=*/SecondsToWait == 0, ErrMsg);
- return Result.ReturnCode;
- }
-
- if (ExecutionFailed)
- *ExecutionFailed = true;
-
- return -1;
-}
-
-ProcessInfo sys::ExecuteNoWait(StringRef Program, ArrayRef<StringRef> Args,
- Optional<ArrayRef<StringRef>> Env,
- ArrayRef<Optional<StringRef>> Redirects,
- unsigned MemoryLimit, std::string *ErrMsg,
- bool *ExecutionFailed) {
- assert(Redirects.empty() || Redirects.size() == 3);
- ProcessInfo PI;
- if (ExecutionFailed)
- *ExecutionFailed = false;
- if (!Execute(PI, Program, Args, Env, Redirects, MemoryLimit, ErrMsg))
- if (ExecutionFailed)
- *ExecutionFailed = true;
-
- return PI;
-}
-
-bool sys::commandLineFitsWithinSystemLimits(StringRef Program,
- ArrayRef<const char *> Args) {
- SmallVector<StringRef, 8> StringRefArgs;
- StringRefArgs.reserve(Args.size());
- for (const char *A : Args)
- StringRefArgs.emplace_back(A);
- return commandLineFitsWithinSystemLimits(Program, StringRefArgs);
-}
-
-// Include the platform-specific parts of this class.
-#ifdef LLVM_ON_UNIX
-#include "Unix/Program.inc"
-#endif
-#ifdef _WIN32
-#include "Windows/Program.inc"
-#endif