X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftoolchain.h;h=8449680409884d12d2801dc760212fa70e8db886;hb=407b96515a5246384847d1835a2d69704e941ea1;hp=1060e09e559b8ffde1b8c8aa9f5f54f16b4cd567;hpb=338eefb513953ae55e8e3614c009c242ba8ad74e;p=builder.git diff --git a/source/toolchain.h b/source/toolchain.h index 1060e09..8449680 100644 --- a/source/toolchain.h +++ b/source/toolchain.h @@ -1,24 +1,32 @@ #ifndef TOOLCHAIN_H_ #define TOOLCHAIN_H_ +#include #include #include class Tool; +/** +A container for tools. Performs lookup based on tag or filename extension. +*/ class Toolchain { private: typedef std::map ToolMap; + typedef std::list ToolchainList; ToolMap tools; + ToolchainList chains; public: ~Toolchain(); void add_tool(Tool *); - const Tool &get_tool(const std::string &) const; - const Tool *get_tool_for_suffix(const std::string &) 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