X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftoolchain.h;h=ea452408cd4c6c25ba900a4d662ccc9847ec8f85;hb=aa053d637e8259755af7d2e4b510a242f4d29c7b;hp=3da6cda9e43ac8cad5438aeccb351ce0743dc0bf;hpb=dceec8d95c63aaf4d8d4b367c9846caf9e32a6bf;p=builder.git diff --git a/source/toolchain.h b/source/toolchain.h index 3da6cda..ea45240 100644 --- a/source/toolchain.h +++ b/source/toolchain.h @@ -3,22 +3,27 @@ #include #include +#include class Tool; +/** +A container for tools. Performs lookup based on tag or filename extension. +*/ class Toolchain { private: - typedef std::map ToolMap; - - ToolMap tools; + std::map tools; + std::vector chains; public: ~Toolchain(); void add_tool(Tool *); - const Tool &get_tool(const std::string &) const; - const Tool *get_tool_for_suffix(const std::string &, bool = false) const; + void add_toolchain(Toolchain *); + bool has_tool(const std::string &) const; + Tool &get_tool(const std::string &) const; + Tool *get_tool_for_suffix(const std::string &, bool = false) const; }; #endif