10#include "clang/Config/config.h"
16#include "llvm/Option/Arg.h"
17#include "llvm/Option/ArgList.h"
18#include "llvm/Support/VirtualFileSystem.h"
19#include "llvm/TargetParser/Host.h"
32 ArgStringList &CC1Args)
const {
33 if (DriverArgs.hasArg(options::OPT_nostdinc))
36 if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
38 llvm::sys::path::append(Dir,
"include");
42 if (DriverArgs.hasArg(options::OPT_nostdlibinc))
53 const char *LinkingOutput)
const {
54 ArgStringList CmdArgs;
60 Args.MakeArgString(std::string(
"-out:") + Output.
getFilename()));
62 CmdArgs.push_back(
"-nologo");
66 CmdArgs.push_back(
"-subsystem:efi_application");
71 CmdArgs.push_back(
"-entry:EfiMain");
74 CmdArgs.push_back(
"-tsaware:no");
76 if (Args.hasArg(options::OPT_g_Group, options::OPT__SLASH_Z7))
77 CmdArgs.push_back(
"-debug");
79 Args.AddAllArgValues(CmdArgs, options::OPT__SLASH_link);
86 StringRef
Linker = Args.getLastArgValue(options::OPT_fuse_ld_EQ,
87 TC.getDriver().getPreferredLinker());
91 auto LinkerPath = TC.GetProgramPath(
Linker.str().c_str());
92 auto LinkCmd = std::make_unique<Command>(
94 Args.MakeArgString(LinkerPath), CmdArgs, Inputs, Output);
95 C.addCommand(std::move(LinkCmd));
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.
static constexpr ResponseFileSupport AtFileUTF16()