X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarget.cpp;h=577438b3528dce736aa3c22077e0857a24f5a0b4;hb=666bf60f80a3f220a112c2a97ed00b72871924d3;hp=43ecb7ba313a1a68ce9fefb139997ace0e203584;hpb=ad88e1ba08cf798e5f87796021c947cf500a02e1;p=builder.git diff --git a/source/target.cpp b/source/target.cpp index 43ecb7b..577438b 100644 --- a/source/target.cpp +++ b/source/target.cpp @@ -55,13 +55,13 @@ void Target::force_rebuild() mark_rebuild("Forced rebuild"); } -void Target::add_depend(Target *dep) +void Target::add_depend(Target &dep) { - if(dep==this) + if(&dep==this) throw invalid_argument("Target::add_depend"); - depends.push_back(dep); + depends.push_back(&dep); if(state>PREPARING) - dep->signal_bubble_rebuild.connect(sigc::mem_fun(this, &Target::check_rebuild)); + dep.signal_bubble_rebuild.connect(sigc::mem_fun(this, &Target::check_rebuild)); } void Target::prepare() @@ -79,7 +79,7 @@ void Target::prepare() if(tool) { if(FileTarget *tool_exe = tool->get_executable()) - add_depend(tool_exe); + add_depend(*tool_exe); } for(Dependencies::iterator i=depends.begin(); i!=depends.end(); ++i) @@ -97,6 +97,7 @@ Task *Target::build() { if(!tool) { + // This special case is needed for VirtualTargets state = UPTODATE; return 0; }