X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarget.cpp;h=87b0d0078e16bcb565898c55ba6923e807b328c1;hb=7ed7c30ee0ceb734f17fe0c6d4bc6d37fb2ab5a7;hp=352b788823534b464ddf609833b826108723c45f;hpb=4cc08a580ddcdc025d2ca23c336e76c11414d8e0;p=builder.git diff --git a/source/target.cpp b/source/target.cpp index 352b788..87b0d00 100644 --- a/source/target.cpp +++ b/source/target.cpp @@ -20,7 +20,7 @@ Target::Target(Builder &b, const string &n): state(INIT), primary_target(0) { - builder.add_target(this); + builder.get_build_graph().add_target(this); } void Target::add_dependency(Target &dep) @@ -64,7 +64,7 @@ Target *Target::get_buildable_target() return 0; } -void Target::set_tool(const Tool &t) +void Target::set_tool(Tool &t) { tool = &t; for(Dependencies::const_iterator i=side_effects.begin(); i!=side_effects.end(); ++i) @@ -102,12 +102,12 @@ void Target::prepare() } state = PREPARING; + if(tool) + tool->prepare(); find_dependencies(); if(tool) - { if(FileTarget *tool_exe = tool->get_executable()) add_dependency(*tool_exe); - } for(Dependencies::iterator i=depends.begin(); i!=depends.end(); ++i) (*i)->prepare(); @@ -122,13 +122,6 @@ void Target::prepare() Task *Target::build() { - if(!tool) - { - // This special case is needed for VirtualTargets - state = UPTODATE; - return 0; - } - Task *task = tool->run(*this); task->signal_finished.connect(sigc::mem_fun(this, &Target::build_finished)); state = BUILDING;