9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
19#include "llvm/Support/ErrorOr.h"
35 const llvm::opt::ArgList &TCArgs,
36 const char *LinkingOutput)
const override;
39class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
48 const llvm::opt::ArgList &TCArgs,
49 const char *LinkingOutput)
const override;
52 void AddLibGCC(
const llvm::opt::ArgList &Args,
53 llvm::opt::ArgStringList &CmdArgs)
const;
63 const llvm::opt::ArgList &Args);
65 static void fixTripleArch(
const Driver &
D, llvm::Triple &Triple,
66 const llvm::opt::ArgList &Args);
68 bool HasNativeLLVMSupport()
const override;
71 getDefaultUnwindTableLevel(
const llvm::opt::ArgList &Args)
const override;
72 bool isPICDefault()
const override;
73 bool isPIEDefault(
const llvm::opt::ArgList &Args)
const override;
74 bool isPICDefaultForced()
const override;
78 llvm::ExceptionHandling GetExceptionModel(
79 const llvm::opt::ArgList &Args)
const override;
82 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
83 llvm::opt::ArgStringList &CC1Args)
const override;
85 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
86 llvm::opt::ArgStringList &CC1Args,
88 void AddClangCXXStdlibIncludeArgs(
89 const llvm::opt::ArgList &DriverArgs,
90 llvm::opt::ArgStringList &CC1Args)
const override;
92 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
93 llvm::opt::ArgStringList &CC1Args)
const override;
94 void AddHIPIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
95 llvm::opt::ArgStringList &CC1Args)
const override;
97 void printVerboseInfo(raw_ostream &OS)
const override;
103 Tool *buildLinker()
const override;
104 Tool *buildAssembler()
const override;
111 std::string GccLibDir;
114 std::string SubdirName;
115 std::string TripleDirName;
116 mutable std::unique_ptr<tools::gcc::Preprocessor>
Preprocessor;
117 mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
118 void findGccLibDir(
const llvm::Triple &LiteralTriple);
120 bool NativeLLVMSupport;
Simple wrapper for toolchain detector with costly initialization.
Engages in a tight little dance with the lexer to efficiently preprocess tokens.
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
The JSON file list parser is used to communicate input to InstallAPI.