]> git.tdb.fi Git - builder.git/blob - source/toolchain.h
572e42f58dcdc9e718a036c11dee5f433d61c8d6
[builder.git] / source / toolchain.h
1 #ifndef TOOLCHAIN_H_
2 #define TOOLCHAIN_H_
3
4 #include <map>
5 #include <string>
6
7 class Tool;
8
9 /**
10 A container for tools.  Performs lookup based on tag or filename extension.
11 */
12 class Toolchain
13 {
14 private:
15         typedef std::map<std::string, Tool *> ToolMap;
16
17         ToolMap tools;
18
19 public:
20         ~Toolchain();
21
22         void add_tool(Tool *);
23         Tool &get_tool(const std::string &) const;
24         Tool *get_tool_for_suffix(const std::string &, bool = false) const;
25 };
26
27 #endif