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;
90 return llvm::DebuggerKind::Default;
99 llvm::Triple::ArchType TargetArch)
const;
104 return getSubDirectoryPath(Type, getArch());
115 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
116 llvm::opt::ArgStringList &CC1Args)
const override;
117 void AddClangCXXStdlibIncludeArgs(
118 const llvm::opt::ArgList &DriverArgs,
119 llvm::opt::ArgStringList &CC1Args)
const override;
121 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
122 llvm::opt::ArgStringList &CC1Args)
const override;
124 bool getWindowsSDKLibraryPath(std::string &path)
const;
126 bool getUniversalCRTLibraryPath(std::string &path)
const;
127 bool useUniversalCRT()
const;
129 computeMSVCVersion(
const Driver *D,
130 const llvm::opt::ArgList &Args)
const override;
132 std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList &Args,
136 void printVerboseInfo(raw_ostream &OS)
const override;
141 void AddSystemIncludeWithSubfolder(
const llvm::opt::ArgList &DriverArgs,
142 llvm::opt::ArgStringList &CC1Args,
143 const std::string &folder,
144 const Twine &subfolder1,
145 const Twine &subfolder2 =
"",
146 const Twine &subfolder3 =
"")
const;
148 Tool *buildLinker()
const override;
149 Tool *buildAssembler()
const override;
151 std::string VCToolChainPath;
160 #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.