10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MSVC_H 11 #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;
87 llvm::Triple::ArchType TargetArch)
const;
92 return getSubDirectoryPath(Type, getArch());
103 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
104 llvm::opt::ArgStringList &CC1Args)
const override;
105 void AddClangCXXStdlibIncludeArgs(
106 const llvm::opt::ArgList &DriverArgs,
107 llvm::opt::ArgStringList &CC1Args)
const override;
109 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
110 llvm::opt::ArgStringList &CC1Args)
const override;
112 bool getWindowsSDKLibraryPath(std::string &path)
const;
114 bool getUniversalCRTLibraryPath(std::string &path)
const;
115 bool useUniversalCRT()
const;
117 computeMSVCVersion(
const Driver *D,
118 const llvm::opt::ArgList &Args)
const override;
120 std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList &Args,
124 void printVerboseInfo(raw_ostream &OS)
const override;
129 void AddSystemIncludeWithSubfolder(
const llvm::opt::ArgList &DriverArgs,
130 llvm::opt::ArgStringList &CC1Args,
131 const std::string &folder,
132 const Twine &subfolder1,
133 const Twine &subfolder2 =
"",
134 const Twine &subfolder3 =
"")
const;
136 Tool *buildLinker()
const override;
137 Tool *buildAssembler()
const override;
139 std::string VCToolChainPath;
148 #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.