]> git.tdb.fi Git - builder.git/blobdiff - source/gnulinker.h
Redesign how tools are run
[builder.git] / source / gnulinker.h
index eb2b00f95b12bdf365ce1605d4aa3bb8f8cefd05..713b978064747ab570b15f9cbc764ddaa149b014 100644 (file)
@@ -3,6 +3,8 @@
 
 #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
@@ -24,23 +26,22 @@ private:
                std::string create_build_signature(const BuildInfo &) const override;
        private:
                void do_prepare() override;
+
        public:
-               Task *run(const Target &) const override;
+               static Task *_run(const Binary &);
        };
 
-       Linker *default_linker;
-       Linker *cxx_linker;
+       Linker *default_linker = 0;
+       Linker *cxx_linker = 0;
 
 public:
        GnuLinker(Builder &, const Architecture &);
        ~GnuLinker();
 
-       Target *create_target(const std::list<Target *> &, const std::string &) override;
+       Target *create_target(const std::vector<Target *> &, const std::string &) override;
        Target *create_install(Target &) const override;
 protected:
        void do_prepare() override;
-public:
-       Task *run(const Target &) const override;
 };
 
 #endif