X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgnucompiler.h;h=b0d0ec9e0afc040edfdc722d5979c0a12ebe6d42;hb=e2c9c3fffcc61a0c102ccf6a7924e2de709092ad;hp=9f81ac8961588598d1cefd767bf2ca3f23c20ca6;hpb=bde362811368647047f3ca13bdec596f092ecffe;p=builder.git diff --git a/source/gnucompiler.h b/source/gnucompiler.h index 9f81ac8..b0d0ec9 100644 --- a/source/gnucompiler.h +++ b/source/gnucompiler.h @@ -3,6 +3,8 @@ #include "tool.h" +class ObjectFile; + /** Common base class for GNU compilers. Turns SourceFiles into ObjectFiles. @@ -12,23 +14,21 @@ appropriate type. */ class GnuCompiler: public Tool { -protected: - unsigned version; - public: GnuCompiler(Builder &, const Architecture &, const std::string &); 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::list &, const std::string &) override; + Target *create_target(const std::vector &, const std::string &) override; std::string create_build_signature(const BuildInfo &) const override; protected: - void do_prepare() override; - void prepare_syspath(); - void prepare_version(); - void prepare_version(const std::string &); -public: - Task *run(const Target &) const override; + 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