X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fvirtualtarget.cpp;h=07177d86057387ad4feefc2dfcdfca885a81b1e0;hb=f0c0d720edc01f5faa72bb4ff4bf655445842678;hp=a8692fbbaca2faa634dbc24e62e5d51d1dba5f5d;hpb=43bd25ffcb0b4f7882773f4676b209a99cb73c04;p=builder.git diff --git a/source/virtualtarget.cpp b/source/virtualtarget.cpp index a8692fb..07177d8 100644 --- a/source/virtualtarget.cpp +++ b/source/virtualtarget.cpp @@ -1,3 +1,4 @@ +#include #include #include #include "builder.h" @@ -6,16 +7,16 @@ using namespace std; using namespace Msp; -VirtualTarget::VirtualTarget(Builder &b, const string &n): - Target(b, 0, n) +void VirtualTarget::check_rebuild() { - builder.add_target(this); + // Virtual targets are only rebuilt if their dependencies need rebuilding. + auto i = find_if(depends, [](Target *d){ return d->needs_rebuild(); }); + if(i!=depends.end()) + mark_rebuild((*i)->get_name()+" needs rebuilding"); } -void VirtualTarget::check_rebuild() +Task *VirtualTarget::build() { - // Virtual targets are only rebuilt if their dependencies need rebuilding. - for(TargetList::iterator i=depends.begin(); (i!=depends.end() && !rebuild); ++i) - if((*i)->get_rebuild()) - mark_rebuild((*i)->get_name()+" needs rebuilding"); + state = UPTODATE; + return 0; }