9 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H 10 #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H 23 namespace visualstudio {
27 :
Tool(
"visualstudio::Linker",
"linker", TC, RF_Full,
28 llvm::sys::WEM_UTF16) {}
35 const llvm::opt::ArgList &TCArgs,
36 const char *LinkingOutput)
const override;
42 :
Tool(
"visualstudio::Compiler",
"compiler", TC, RF_Full,
43 llvm::sys::WEM_UTF16) {}
51 const llvm::opt::ArgList &TCArgs,
52 const char *LinkingOutput)
const override;
57 const llvm::opt::ArgList &TCArgs,
58 const char *LinkingOutput)
const;
64 namespace toolchains {
69 const llvm::opt::ArgList &Args);
71 llvm::opt::DerivedArgList *
72 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
75 bool IsIntegratedAssemblerDefault()
const override;
76 bool IsUnwindTablesDefault(
const llvm::opt::ArgList &Args)
const override;
77 bool isPICDefault()
const override;
78 bool isPIEDefault()
const override;
79 bool isPICDefaultForced()
const override;
92 return llvm::DebuggerKind::Default;
101 llvm::StringRef SubdirParent,
102 llvm::Triple::ArchType TargetArch)
const;
107 llvm::StringRef SubdirParent =
"")
const {
108 return getSubDirectoryPath(Type, SubdirParent, getArch());
119 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
120 llvm::opt::ArgStringList &CC1Args)
const override;
121 void AddClangCXXStdlibIncludeArgs(
122 const llvm::opt::ArgList &DriverArgs,
123 llvm::opt::ArgStringList &CC1Args)
const override;
125 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
126 llvm::opt::ArgStringList &CC1Args)
const override;
128 bool getWindowsSDKLibraryPath(std::string &path)
const;
130 bool getUniversalCRTLibraryPath(std::string &path)
const;
131 bool useUniversalCRT()
const;
133 computeMSVCVersion(
const Driver *D,
134 const llvm::opt::ArgList &Args)
const override;
136 std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList &Args,
140 void printVerboseInfo(raw_ostream &OS)
const override;
145 void AddSystemIncludeWithSubfolder(
const llvm::opt::ArgList &DriverArgs,
146 llvm::opt::ArgStringList &CC1Args,
147 const std::string &folder,
148 const Twine &subfolder1,
149 const Twine &subfolder2 =
"",
150 const Twine &subfolder3 =
"")
const;
152 Tool *buildLinker()
const override;
153 Tool *buildAssembler()
const override;
155 std::string VCToolChainPath;
164 #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
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.