]> git.tdb.fi Git - builder.git/blobdiff - source/toolchain.cpp
Refactor transitive dependencies to work on all targets
[builder.git] / source / toolchain.cpp
diff --git a/source/toolchain.cpp b/source/toolchain.cpp
deleted file mode 100644 (file)
index 8790c83..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <algorithm>
-#include <msp/core/maputils.h>
-#include "tool.h"
-#include "toolchain.h"
-
-using namespace std;
-using namespace Msp;
-
-Toolchain::~Toolchain()
-{
-       for(const auto &kvp: tools)
-               delete kvp.second;
-       for(Toolchain *c: chains)
-               delete c;
-}
-
-void Toolchain::add_tool(Tool *tool)
-{
-       insert_unique(tools, tool->get_tag(), tool);
-}
-
-void Toolchain::add_toolchain(Toolchain *chain)
-{
-       chains.push_back(chain);
-}
-
-bool Toolchain::has_tool(const string &tag) const
-{
-       if(tools.count(tag))
-               return true;
-       return any_of(chains.begin(), chains.end(), [&tag](Toolchain *tc){ return tc->has_tool(tag); });
-}
-
-Tool &Toolchain::get_tool(const string &tag) const
-{
-       if(!tools.count(tag))
-       {
-               for(const Toolchain *c: chains)
-                       if(c->has_tool(tag))
-                               return c->get_tool(tag);
-       }
-
-       return *get_item(tools, tag);
-}
-
-Tool *Toolchain::get_tool_for_suffix(const string &suffix, bool aux) const
-{
-       for(const auto &kvp: tools)
-               if(kvp.second->accepts_suffix(suffix, aux))
-                       return kvp.second;
-
-       for(const Toolchain *c: chains)
-               if(Tool *tool = c->get_tool_for_suffix(suffix, aux))
-                       return tool;
-
-       return 0;
-}