]> git.tdb.fi Git - builder.git/blobdiff - source/gnucompiler.h
Add gcc's private library directory to ClangLinker's system path
[builder.git] / source / gnucompiler.h
index 307aa5ee4115921357ba033b4ceb6437f3c0202a..b0d0ec9e0afc040edfdc722d5979c0a12ebe6d42 100644 (file)
@@ -3,6 +3,8 @@
 
 #include "tool.h"
 
+class ObjectFile;
+
 /**
 Common base class for GNU compilers.  Turns SourceFiles into ObjectFiles.
 
@@ -15,14 +17,18 @@ class GnuCompiler: public Tool
 public:
        GnuCompiler(Builder &, const Architecture &, const std::string &);
 
-       virtual Target *create_source(const Component &, const Msp::FS::Path &) const;
-       virtual Target *create_source(const Msp::FS::Path &) const;
-       virtual Target *create_target(const std::list<Target *> &, const std::string &);
-       virtual std::string create_build_signature(const BuildInfo &) const;
+       Target *create_source(const Component &, const Msp::FS::Path &) const override;
+       Target *create_source(const Msp::FS::Path &) const override;
+       Target *create_target(const std::vector<Target *> &, const std::string &) override;
+       std::string create_build_signature(const BuildInfo &) const override;
 protected:
-       virtual void do_prepare();
-public:
-       virtual Task *run(const Target &) const;
+       void do_prepare(ToolData &) const override;
+       void prepare_syspath(ToolData &) const;
+       void prepare_version(ToolData &) const;
+       unsigned query_version(const std::string &, const std::string &) const;
+
+private:
+       static ExternalTask::Arguments _run(const ObjectFile &, Msp::FS::Path &);
 };
 
 #endif