14 #ifndef LLVM_SUPPORT_PROGRAM_H
15 #define LLVM_SUPPORT_PROGRAM_H
27 #if defined(LLVM_ON_UNIX)
28 const char EnvPathSeparator =
':';
29 #elif defined (LLVM_ON_WIN32)
30 const char EnvPathSeparator =
';';
35 #if defined(LLVM_ON_UNIX)
36 typedef pid_t ProcessId;
37 #elif defined(LLVM_ON_WIN32)
38 typedef unsigned long ProcessId;
39 typedef void * HANDLE;
43 #error "ProcessInfo is not defined for this platform!"
97 unsigned secondsToWait = 0,
102 unsigned memoryLimit = 0,
106 std::string *ErrMsg = 0,
110 bool *ExecutionFailed = 0);
119 const StringRef **redirects = 0,
unsigned memoryLimit = 0,
120 std::string *ErrMsg = 0,
bool *ExecutionFailed = 0);
135 unsigned SecondsToWait,
139 bool WaitUntilTerminates,
141 std::string *ErrMsg = 0
error_code ChangeStdinToBinary()
bool argumentsFitWithinSystemLimits(ArrayRef< const char * > Args)
ProcessId Pid
The process identifier.
int ExecuteAndWait(StringRef Program, const char **args, const char **env=0, const StringRef **redirects=0, unsigned secondsToWait=0, unsigned memoryLimit=0, std::string *ErrMsg=0, bool *ExecutionFailed=0)
ProcessInfo ExecuteNoWait(StringRef Program, const char **args, const char **env=0, const StringRef **redirects=0, unsigned memoryLimit=0, std::string *ErrMsg=0, bool *ExecutionFailed=0)
error_code ChangeStderrToBinary()
int ReturnCode
The return code, set after execution.
This is the OS-specific separator for PATH like environment variables:
std::string FindProgramByName(const std::string &name)
Construct a Program by finding it by name.
ProcessInfo Wait(const ProcessInfo &PI, unsigned SecondsToWait, bool WaitUntilTerminates, std::string *ErrMsg=0)
error_code ChangeStdoutToBinary()