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