]> git.tdb.fi Git - builder.git/blobdiff - source/buildgraph.cpp
Refactor transitive dependencies to work on all targets
[builder.git] / source / buildgraph.cpp
diff --git a/source/buildgraph.cpp b/source/buildgraph.cpp
deleted file mode 100644 (file)
index a3af685..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#include "builder.h"
-#include "buildgraph.h"
-#include "component.h"
-#include "sourcepackage.h"
-#include "tool.h"
-#include "virtualtarget.h"
-
-using namespace std;
-
-BuildGraph::BuildGraph(Builder &b):
-       builder(b),
-       goals(new VirtualTarget(builder, "goals"))
-{
-       Target *world = new VirtualTarget(builder, "world");
-       world->add_dependency(*new VirtualTarget(builder, "default"));
-       world->add_dependency(*new VirtualTarget(builder, "install"));
-       world->add_dependency(*new VirtualTarget(builder, "archives"));
-}
-
-BuildGraph::~BuildGraph()
-{
-       for(const auto &kvp: targets)
-               delete kvp.second;
-}
-
-Target *BuildGraph::get_target(const string &n) const
-{
-       TargetMap::const_iterator i = targets.find(n);
-       if(i!=targets.end())
-               return i->second;
-       return 0;
-}
-
-void BuildGraph::add_target(Target *t)
-{
-       targets.insert(TargetMap::value_type(t->get_name(), t));
-}
-
-void BuildGraph::add_primary_target(Target &t)
-{
-       get_target("world")->add_dependency(t);
-
-       Package *main_pkg = &builder.get_package_manager().get_main_package();
-       if(t.get_package()==main_pkg && t.get_component() && t.get_component()->is_default())
-               get_target("default")->add_dependency(t);
-}
-
-void BuildGraph::add_installed_target(Target &t)
-{
-       Target *inst_tgt = 0;
-       if(const Tool *tool = t.get_tool())
-               inst_tgt = tool->create_install(t);
-       if(!inst_tgt)
-               inst_tgt = builder.get_toolchain().get_tool("CP").create_target(t);
-       get_target("install")->add_dependency(*inst_tgt);
-}
-
-void BuildGraph::add_goal(Target &t)
-{
-       goals->add_dependency(t);
-}
-
-void BuildGraph::prepare()
-{
-       if(goals->get_dependencies().empty())
-               add_goal(*get_target("default"));
-       goals->prepare();
-}
-
-void BuildGraph::force_full_rebuild()
-{
-       for(const auto &kvp: targets)
-               if(kvp.second->is_buildable() && !kvp.second->needs_rebuild())
-                       kvp.second->force_rebuild();
-}
-
-unsigned BuildGraph::count_rebuild_targets() const
-{
-       unsigned count = 0;
-       for(const auto &kvp: targets)
-               if(kvp.second->is_buildable() && kvp.second->needs_rebuild())
-                       ++count;
-       return count;
-}
-
-Target *BuildGraph::get_buildable_target() const
-{
-       return goals->get_buildable_target();
-}