13 #include "llvm/Option/ArgList.h"
15 using namespace clang::driver;
16 using namespace clang::driver::toolchains;
19 const llvm::Triple &T,
20 const llvm::opt::ArgList &Args)
23 const std::string &SysRoot = D.
SysRoot;
35 return getArch() == llvm::Triple::x86_64;
39 return getArch() == llvm::Triple::x86_64;
43 return getArch() == llvm::Triple::x86_64;
47 return getArch() == llvm::Triple::x86_64;
52 llvm::opt::ArgStringList &CC1Args)
const {
54 const std::string &SysRoot = D.
SysRoot;
56 if (DriverArgs.hasArg(options::OPT_nostdlibinc))
60 if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
62 llvm::sys::path::append(ResourceDir,
"include");
70 llvm::opt::ArgStringList &CC1Args)
const {
74 if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
75 DriverArgs.hasArg(options::OPT_nostdincxx))
86 SysRoot +
"/usr/include/c++/" + Triple.str());
88 SysRoot +
"/usr/include/c++/backwards");
94 llvm::opt::ArgStringList &CC1Args)
const {
97 CC1Args.push_back(
"-lc++");
100 CC1Args.push_back(
"-lstdc++");
101 CC1Args.push_back(
"-lmingw32");
102 CC1Args.push_back(
"-lmingwex");
103 CC1Args.push_back(
"-lgcc");
104 CC1Args.push_back(
"-lmoldname");
105 CC1Args.push_back(
"-lmingw32");
std::string SysRoot
sysroot, if present
std::string ResourceDir
The path to the compiler resource directory.