SystemUtils.h revision d890de10af6a4d01fe0b35f09ccd674d771e4732
1//===- SystemUtils.h - Utilities to do low-level system stuff ---*- 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 file contains functions used to do a variety of low-level, often 11// system-specific, tasks. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_SUPPORT_SYSTEMUTILS_H 16#define LLVM_SUPPORT_SYSTEMUTILS_H 17 18#include "llvm/System/Program.h" 19 20namespace llvm { 21 22/// Determine if the ostream provided is connected to the std::cout and 23/// displayed or not (to a console window). If so, generate a warning message 24/// advising against display of bitcode and return true. Otherwise just return 25/// false 26/// @brief Check for output written to a console 27bool CheckBitcodeOutputToConsole( 28 std::ostream* stream_to_check, ///< The stream to be checked 29 bool print_warning = true ///< Control whether warnings are printed 30); 31 32/// Determine if the raw_ostream provided is connected to the outs() and 33/// displayed or not (to a console window). If so, generate a warning message 34/// advising against display of bitcode and return true. Otherwise just return 35/// false 36/// @brief Check for output written to a console 37bool CheckBitcodeOutputToConsole( 38 raw_ostream* stream_to_check, ///< The stream to be checked 39 bool print_warning = true ///< Control whether warnings are printed 40); 41 42/// FindExecutable - Find a named executable, giving the argv[0] of program 43/// being executed. This allows us to find another LLVM tool if it is built into 44/// the same directory, but that directory is neither the current directory, nor 45/// in the PATH. If the executable cannot be found, return an empty string. 46/// @brief Find a named executable. 47sys::Path FindExecutable(const std::string &ExeName, 48 const std::string &ProgramPath); 49 50} // End llvm namespace 51 52#endif 53