10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H 11 #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H 24 namespace visualstudio {
28 :
Tool(
"visualstudio::Linker",
"linker", TC, RF_Full,
29 llvm::sys::WEM_UTF16) {}
36 const llvm::opt::ArgList &TCArgs,
37 const char *LinkingOutput)
const override;
43 :
Tool(
"visualstudio::Compiler",
"compiler", TC, RF_Full,
44 llvm::sys::WEM_UTF16) {}
52 const llvm::opt::ArgList &TCArgs,
53 const char *LinkingOutput)
const override;
58 const llvm::opt::ArgList &TCArgs,
59 const char *LinkingOutput)
const;
65 namespace toolchains {
70 const llvm::opt::ArgList &Args);
72 llvm::opt::DerivedArgList *
73 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
76 bool IsIntegratedAssemblerDefault()
const override;
77 bool IsUnwindTablesDefault(
const llvm::opt::ArgList &Args)
const override;
78 bool isPICDefault()
const override;
79 bool isPIEDefault()
const override;
80 bool isPICDefaultForced()
const override;
91 return llvm::DebuggerKind::Default;
100 llvm::Triple::ArchType TargetArch)
const;
105 return getSubDirectoryPath(Type, getArch());
116 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
117 llvm::opt::ArgStringList &CC1Args)
const override;
118 void AddClangCXXStdlibIncludeArgs(
119 const llvm::opt::ArgList &DriverArgs,
120 llvm::opt::ArgStringList &CC1Args)
const override;
122 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
123 llvm::opt::ArgStringList &CC1Args)
const override;
125 bool getWindowsSDKLibraryPath(std::string &path)
const;
127 bool getUniversalCRTLibraryPath(std::string &path)
const;
128 bool useUniversalCRT()
const;
130 computeMSVCVersion(
const Driver *D,
131 const llvm::opt::ArgList &Args)
const override;
133 std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList &Args,
137 void printVerboseInfo(raw_ostream &OS)
const override;
142 void AddSystemIncludeWithSubfolder(
const llvm::opt::ArgList &DriverArgs,
143 llvm::opt::ArgStringList &CC1Args,
144 const std::string &folder,
145 const Twine &subfolder1,
146 const Twine &subfolder2 =
"",
147 const Twine &subfolder3 =
"")
const;
149 Tool *buildLinker()
const override;
150 Tool *buildAssembler()
const override;
152 std::string VCToolChainPath;
161 #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
The base class of the type hierarchy.
A class to find a viable CUDA installation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
Dataflow Directional Tag Classes.
Compilation - A set of tasks to perform for a single driver invocation.