Go to the documentation of this file.
14 #include "llvm/Option/ArgList.h"
19 using namespace clang;
29 const char *LinkingOutput)
const {
31 ArgStringList CmdArgs;
33 CmdArgs.push_back(
"-o");
36 CmdArgs.push_back(
"-c");
38 if (Args.hasArg(options::OPT_v))
39 CmdArgs.push_back(
"-v");
41 if (Arg *A = Args.getLastArg(options::OPT_g_Group))
42 if (!A->getOption().matches(options::OPT_g0))
43 CmdArgs.push_back(
"-g");
45 if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm,
47 CmdArgs.push_back(
"-fverbose-asm");
49 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
51 for (
const auto &II : Inputs)
52 CmdArgs.push_back(II.getFilename());
54 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath(
"xcc"));
56 Exec, CmdArgs, Inputs, Output));
63 const char *LinkingOutput)
const {
64 ArgStringList CmdArgs;
67 CmdArgs.push_back(
"-o");
70 assert(Output.
isNothing() &&
"Invalid output.");
73 if (Args.hasArg(options::OPT_v))
74 CmdArgs.push_back(
"-v");
77 if (Args.hasFlag(options::OPT_fexceptions, options::OPT_fno_exceptions,
79 CmdArgs.push_back(
"-fexceptions");
83 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath(
"xcc"));
85 Exec, CmdArgs, Inputs, Output));
114 ArgStringList &CC1Args)
const {
115 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
116 DriverArgs.hasArg(options::OPT_nostdlibinc))
118 if (
const char *cl_include_dir = getenv(
"XCC_C_INCLUDE_PATH")) {
120 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
121 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
128 ArgStringList &CC1Args,
130 CC1Args.push_back(
"-nostdsysteminc");
134 const ArgList &DriverArgs, ArgStringList &CC1Args)
const {
135 if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
136 DriverArgs.hasArg(options::OPT_nostdlibinc) ||
137 DriverArgs.hasArg(options::OPT_nostdincxx))
139 if (
const char *cl_include_dir = getenv(
"XCC_CPLUS_INCLUDE_PATH")) {
141 const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator,
'\0'};
142 StringRef(cl_include_dir).split(Dirs, StringRef(EnvPathSeparatorStr));
149 ArgStringList &CmdArgs)
const {
Compilation - A set of tasks to perform for a single driver invocation.
Dataflow Directional Tag Classes.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
static constexpr ResponseFileSupport None()
Returns a ResponseFileSupport indicating that response files are not supported.