class Toolchain
{
private:
+ std::string name;
+ int priority = 0;
std::map<std::string, Tool *> tools;
std::vector<Toolchain *> chains;
+protected:
+ Toolchain(const std::string &n, unsigned p): name(n), priority(p) { }
public:
+ Toolchain() = default;
~Toolchain();
+ const std::string &get_name() const { return name; }
+ int get_priority() const { return priority; }
void add_tool(Tool *);
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;
+ const std::vector<Toolchain *> &get_toolchains() { return chains; }
};
#endif