1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AVR_H |
10 | #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AVR_H |
11 | |
12 | #include "Gnu.h" |
13 | #include "InputInfo.h" |
14 | #include "clang/Driver/ToolChain.h" |
15 | #include "clang/Driver/Tool.h" |
16 | |
17 | namespace clang { |
18 | namespace driver { |
19 | namespace toolchains { |
20 | |
21 | class LLVM_LIBRARY_VISIBILITY AVRToolChain : public Generic_ELF { |
22 | protected: |
23 | Tool *buildLinker() const override; |
24 | public: |
25 | AVRToolChain(const Driver &D, const llvm::Triple &Triple, |
26 | const llvm::opt::ArgList &Args); |
27 | }; |
28 | |
29 | } |
30 | |
31 | namespace tools { |
32 | namespace AVR { |
33 | class LLVM_LIBRARY_VISIBILITY Linker : public GnuTool { |
34 | public: |
35 | Linker(const ToolChain &TC) : GnuTool("AVR::Linker", "avr-ld", TC) {} |
36 | bool hasIntegratedCPP() const override { return false; } |
37 | bool isLinkJob() const override { return true; } |
38 | void ConstructJob(Compilation &C, const JobAction &JA, |
39 | const InputInfo &Output, const InputInfoList &Inputs, |
40 | const llvm::opt::ArgList &TCArgs, |
41 | const char *LinkingOutput) const override; |
42 | }; |
43 | } |
44 | } |
45 | } |
46 | } |
47 | |
48 | #endif |
49 | |