]> git.tdb.fi Git - builder.git/blob - plugins/gnu/gnulinker.h
Move some path and filename manipulations into the Component class
[builder.git] / plugins / gnu / gnulinker.h
1 #ifndef GNULINKER_H_
2 #define GNULINKER_H_
3
4 #include <msp/builder/tool.h>
5
6 class Binary;
7
8 /**
9 The GNU linker.  Turns ObjectFiles into Executables and SharedLibraries.  To
10 create a shared library, specify "shared" as the second argument to
11 create_target.
12 */
13 class GnuLinker: public Tool
14 {
15 public:
16         GnuLinker(Builder &, const Architecture &);
17
18         Target *create_target(const std::vector<Target *> &, const std::string &) override;
19         Target *create_install(Target &) const override;
20         std::string create_build_signature(const BuildInfo &) const override;
21 protected:
22         void do_prepare(ToolData &) const override;
23 private:
24         static ExternalTask::Arguments _run(const Binary &, Msp::FS::Path &);
25 };
26
27 #endif