X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuildgraph.cpp;h=6ae13dcdf304cd5396b02b2a9b3a68bf5af3da0e;hb=HEAD;hp=94b5ed6ffd2dcfe578249dc2739a39c2a0014191;hpb=09366b5da31707942f66e386cd0c07e5ece17b7f;p=builder.git diff --git a/source/buildgraph.cpp b/source/buildgraph.cpp deleted file mode 100644 index 94b5ed6..0000000 --- a/source/buildgraph.cpp +++ /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, "tarballs")); -} - -BuildGraph::~BuildGraph() -{ - for(TargetMap::iterator i=targets.begin(); i!=targets.end(); ++i) - delete i->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(TargetMap::iterator i=targets.begin(); i!=targets.end(); ++i) - if(i->second->is_buildable() && !i->second->needs_rebuild()) - i->second->force_rebuild(); -} - -unsigned BuildGraph::count_rebuild_targets() const -{ - unsigned count = 0; - for(map::const_iterator i=targets.begin(); i!=targets.end(); ++i) - if(i->second->is_buildable() && i->second->needs_rebuild()) - ++count; - return count; -} - -Target *BuildGraph::get_buildable_target() const -{ - return goals->get_buildable_target(); -}