1 //===-- Program.cpp - Implement OS Program Concept --------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This header file implements the operating system Program concept.
12 //===----------------------------------------------------------------------===//
14 #include "llvm/Support/Program.h"
15 #include "llvm/Config/config.h"
16 #include "llvm/Support/system_error.h"
20 //===----------------------------------------------------------------------===//
21 //=== WARNING: Implementation here must contain only TRULY operating system
22 //=== independent code.
23 //===----------------------------------------------------------------------===//
26 Program::ExecuteAndWait(const Path& path,
29 const Path** redirects,
30 unsigned secondsToWait,
33 bool *ExecutionFailed) {
35 if (prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg)) {
36 if (ExecutionFailed) *ExecutionFailed = false;
37 return prg.Wait(path, secondsToWait, ErrMsg);
39 if (ExecutionFailed) *ExecutionFailed = true;
44 Program::ExecuteNoWait(const Path& path,
47 const Path** redirects,
49 std::string* ErrMsg) {
51 prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg);
54 // Include the platform-specific parts of this class.
56 #include "Unix/Program.inc"
59 #include "Windows/Program.inc"