X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=e6f036b7028f409ec0851615d068152dd1547966;hb=b0eb979b0dc79269cb3bb5bb2e67ef4e80689cfe;hp=cb8ddf610fe7b0237fb5a9f078ebcd122144e3ee;hpb=0d80cabf649b931b26e7055385156c75a7385d35;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index cb8ddf6..e6f036b 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -137,6 +137,9 @@ Package *Builder::get_package(const string &n) return pkg; } +/** +Returns the target with the given name, or 0 if no such target exists. +*/ Target *Builder::get_target(const string &n) { TargetMap::iterator i=targets.find(n); @@ -233,15 +236,6 @@ int Builder::main() default_pkg->create_build_info(); - /*cout<<"Active packages:"; - for(PackageMap::iterator i=packages.begin(); i!=packages.end(); ++i) - { - cout<<' '<second->get_name(); - if(i->second->get_buildable()) - cout<<'*'; - } - cout<<'\n';*/ - if(create_targets()) return 1; @@ -261,8 +255,6 @@ int Builder::main() } } - //cout<<"Active targets: "<analyze(); @@ -396,6 +388,8 @@ int Builder::create_targets() Target *tgt=new_tgts.front(); new_tgts.erase(new_tgts.begin()); tgt->find_depends(); + if(!tgt->get_depends_ready()) + new_tgts.push_back(tgt); } Target *cmdline=new VirtualTarget(*this, "cmdline"); @@ -465,7 +459,7 @@ int Builder::build() while(!finish) { - if(actions.size()get_buildable_target(); if(tgt) @@ -506,7 +500,9 @@ int Builder::build() delete actions[i]; actions.erase(actions.begin()+i); if(status>0) - finish=fail=true; + fail=true; + if(actions.empty() && fail) + finish=true; } else ++i;