Program.cpp revision 218885
1//===-- Program.cpp - Implement OS Program Concept --------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10//  This header file implements the operating system Program concept.
11//
12//===----------------------------------------------------------------------===//
13
14#include "llvm/Support/Program.h"
15#include "llvm/Config/config.h"
16using namespace llvm;
17using namespace sys;
18
19//===----------------------------------------------------------------------===//
20//=== WARNING: Implementation here must contain only TRULY operating system
21//===          independent code.
22//===----------------------------------------------------------------------===//
23
24int
25Program::ExecuteAndWait(const Path& path,
26                        const char** args,
27                        const char** envp,
28                        const Path** redirects,
29                        unsigned secondsToWait,
30                        unsigned memoryLimit,
31                        std::string* ErrMsg) {
32  Program prg;
33  if (prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg))
34    return prg.Wait(path, secondsToWait, ErrMsg);
35  else
36    return -1;
37}
38
39void
40Program::ExecuteNoWait(const Path& path,
41                       const char** args,
42                       const char** envp,
43                       const Path** redirects,
44                       unsigned memoryLimit,
45                       std::string* ErrMsg) {
46  Program prg;
47  prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg);
48}
49
50// Include the platform-specific parts of this class.
51#ifdef LLVM_ON_UNIX
52#include "Unix/Program.inc"
53#endif
54#ifdef LLVM_ON_WIN32
55#include "Windows/Program.inc"
56#endif
57