clang 20.0.0git
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
clang::driver::Command Class Reference

Command - An executable path/name and argument vector to execute. More...

#include "clang/Driver/Job.h"

Inheritance diagram for clang::driver::Command:
Inheritance graph
[legend]

Public Member Functions

 Command (const Action &Source, const Tool &Creator, ResponseFileSupport ResponseSupport, const char *Executable, const llvm::opt::ArgStringList &Arguments, ArrayRef< InputInfo > Inputs, ArrayRef< InputInfo > Outputs=std::nullopt, const char *PrependArg=nullptr)
 
 Command (const Command &)=default
 
virtual ~Command ()=default
 
virtual void Print (llvm::raw_ostream &OS, const char *Terminator, bool Quote, CrashReportInfo *CrashInfo=nullptr) const
 
virtual int Execute (ArrayRef< std::optional< StringRef > > Redirects, std::string *ErrMsg, bool *ExecutionFailed) const
 
const ActiongetSource () const
 getSource - Return the Action which caused the creation of this job.
 
const ToolgetCreator () const
 getCreator - Return the Tool which caused the creation of this job.
 
const ResponseFileSupportgetResponseFileSupport ()
 Returns the kind of response file supported by the current invocation.
 
void setResponseFile (const char *FileName)
 Set to pass arguments via a response file when launching the command.
 
void setInputFileList (llvm::opt::ArgStringList List)
 Set an input file list, necessary if you specified an RF_FileList response file support.
 
virtual void setEnvironment (llvm::ArrayRef< const char * > NewEnvironment)
 Sets the environment to be used by the new process.
 
void setRedirectFiles (const std::vector< std::optional< std::string > > &Redirects)
 
void replaceArguments (llvm::opt::ArgStringList List)
 
void replaceExecutable (const char *Exe)
 
const char * getExecutable () const
 
const llvm::opt::ArgStringList & getArguments () const
 
const std::vector< InputInfo > & getInputInfos () const
 
const std::vector< std::string > & getOutputFilenames () const
 
std::optional< llvm::sys::ProcessStatistics > getProcessStatistics () const
 

Public Attributes

bool PrintInputFilenames = false
 Whether to print the input filenames when executing.
 
bool InProcess = false
 Whether the command will be executed in this process or not.
 

Protected Member Functions

void PrintFileNames () const
 Optionally print the filenames to be compiled.
 

Detailed Description

Command - An executable path/name and argument vector to execute.

Definition at line 106 of file Job.h.

Constructor & Destructor Documentation

◆ Command() [1/2]

Command::Command ( const Action Source,
const Tool Creator,
ResponseFileSupport  ResponseSupport,
const char *  Executable,
const llvm::opt::ArgStringList &  Arguments,
ArrayRef< InputInfo Inputs,
ArrayRef< InputInfo Outputs = std::nullopt,
const char *  PrependArg = nullptr 
)

Definition at line 39 of file Job.cpp.

◆ Command() [2/2]

clang::driver::Command::Command ( const Command )
default

◆ ~Command()

virtual clang::driver::Command::~Command ( )
virtualdefault

Member Function Documentation

◆ Execute()

int Command::Execute ( ArrayRef< std::optional< StringRef > >  Redirects,
std::string *  ErrMsg,
bool ExecutionFailed 
) const
virtual

◆ getArguments()

const llvm::opt::ArgStringList & clang::driver::Command::getArguments ( ) const
inline

◆ getCreator()

const Tool & clang::driver::Command::getCreator ( ) const
inline

getCreator - Return the Tool which caused the creation of this job.

Definition at line 192 of file Job.h.

Referenced by clang::driver::CC1Command::Execute(), clang::driver::Driver::ExecuteCompilation(), and clang::driver::Driver::generateCompilationDiagnostics().

◆ getExecutable()

const char * clang::driver::Command::getExecutable ( ) const
inline

Definition at line 223 of file Job.h.

Referenced by clang::driver::CC1Command::Execute().

◆ getInputInfos()

const std::vector< InputInfo > & clang::driver::Command::getInputInfos ( ) const
inline

Definition at line 227 of file Job.h.

◆ getOutputFilenames()

const std::vector< std::string > & clang::driver::Command::getOutputFilenames ( ) const
inline

Definition at line 229 of file Job.h.

◆ getProcessStatistics()

std::optional< llvm::sys::ProcessStatistics > clang::driver::Command::getProcessStatistics ( ) const
inline

Definition at line 233 of file Job.h.

◆ getResponseFileSupport()

const ResponseFileSupport & clang::driver::Command::getResponseFileSupport ( )
inline

Returns the kind of response file supported by the current invocation.

Definition at line 195 of file Job.h.

◆ getSource()

const Action & clang::driver::Command::getSource ( ) const
inline

getSource - Return the Action which caused the creation of this job.

Definition at line 189 of file Job.h.

Referenced by clang::driver::Driver::ExecuteCompilation().

◆ Print()

void Command::Print ( llvm::raw_ostream &  OS,
const char *  Terminator,
bool  Quote,
CrashReportInfo CrashInfo = nullptr 
) const
virtual

◆ PrintFileNames()

void Command::PrintFileNames ( ) const
protected

Optionally print the filenames to be compiled.

Definition at line 318 of file Job.cpp.

References PrintInputFilenames.

Referenced by Execute(), and clang::driver::CC1Command::Execute().

◆ replaceArguments()

void clang::driver::Command::replaceArguments ( llvm::opt::ArgStringList  List)
inline

Definition at line 217 of file Job.h.

Referenced by clang::driver::Driver::generateCompilationDiagnostics().

◆ replaceExecutable()

void clang::driver::Command::replaceExecutable ( const char *  Exe)
inline

Definition at line 221 of file Job.h.

◆ setEnvironment()

void Command::setEnvironment ( llvm::ArrayRef< const char * >  NewEnvironment)
virtual

Sets the environment to be used by the new process.

Parameters
NewEnvironmentAn array of environment variables.
Remarks
If the environment remains unset, then the environment from the parent process will be used.

Reimplemented in clang::driver::CC1Command.

Definition at line 307 of file Job.cpp.

◆ setInputFileList()

void clang::driver::Command::setInputFileList ( llvm::opt::ArgStringList  List)
inline

Set an input file list, necessary if you specified an RF_FileList response file support.

Definition at line 204 of file Job.h.

◆ setRedirectFiles()

void Command::setRedirectFiles ( const std::vector< std::optional< std::string > > &  Redirects)

Definition at line 313 of file Job.cpp.

◆ setResponseFile()

void Command::setResponseFile ( const char *  FileName)

Set to pass arguments via a response file when launching the command.

Definition at line 301 of file Job.cpp.

References clang::FileName, and clang::driver::ResponseFileSupport::ResponseFlag.

Member Data Documentation

◆ InProcess

bool clang::driver::Command::InProcess = false

Whether the command will be executed in this process or not.

Definition at line 170 of file Job.h.

Referenced by clang::driver::CC1Command::CC1Command(), clang::driver::CC1Command::Execute(), and clang::driver::CC1Command::Print().

◆ PrintInputFilenames

bool clang::driver::Command::PrintInputFilenames = false

Whether to print the input filenames when executing.

Definition at line 167 of file Job.h.

Referenced by PrintFileNames().


The documentation for this class was generated from the following files: