X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgnucompiler.h;h=9f0304d82daa0408c4ae3817b36d7b828a5d4ee7;hb=c51411c4b3ed4e6a0d8343b848db3dc736bc7857;hp=9d025edbf791bf326440e49f7e12837973caf016;hpb=25a315f3cb5805614c513ac762ea1bd512ce82cb;p=builder.git diff --git a/source/gnucompiler.h b/source/gnucompiler.h index 9d025ed..9f0304d 100644 --- a/source/gnucompiler.h +++ b/source/gnucompiler.h @@ -3,13 +3,26 @@ #include "tool.h" +/** +Common base class for GNU compilers. Turns SourceFiles into ObjectFiles. + +Since invocation is mostly the same for all language frontends, most of the +logic is here and the individual tools only handle creating source files of +appropriate type. +*/ class GnuCompiler: public Tool { protected: - GnuCompiler(Builder &, const Architecture &, const std::string &, const std::string &); + std::string version; + + GnuCompiler(Builder &, const Architecture &, const std::string &); public: - virtual Target *create_target(const std::list &, const std::string &) const; + virtual Target *create_target(const std::list &, const std::string &); + virtual std::string create_build_signature(const BuildInfo &) const; +protected: + virtual void do_prepare(); +public: virtual Task *run(const Target &) const; };