#include "tool.h"
+class Binary;
+
/**
The GNU linker. Turns ObjectFiles into Executables and SharedLibraries. To
create a shared library, specify "shared" as the second argument to
public:
Linker(GnuLinker &, const std::string &);
- virtual std::string create_build_signature(const BuildInfo &) const;
+ std::string create_build_signature(const BuildInfo &) const override;
private:
- virtual void do_prepare();
+ void do_prepare() override;
+
public:
- virtual Task *run(const Target &) const;
+ static Task *_run(const Binary &);
};
- Linker *default_linker;
- Linker *cxx_linker;
+ Linker *default_linker = 0;
+ Linker *cxx_linker = 0;
public:
- GnuLinker(Builder &, const Architecture &, const Msp::FS::Path & = Msp::FS::Path());
+ GnuLinker(Builder &, const Architecture &);
~GnuLinker();
- virtual Target *create_target(const std::list<Target *> &, const std::string &);
- virtual Target *create_install(Target &) const;
+ Target *create_target(const std::vector<Target *> &, const std::string &) override;
+ Target *create_install(Target &) const override;
protected:
- virtual void do_prepare();
-public:
- virtual Task *run(const Target &) const;
+ void do_prepare() override;
};
#endif