X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvirtualtarget.cpp;h=44a352421270c5f7b2581c3c34973d583d6c69c7;hb=82c7d6187fdaeaa1b9cfbd6637d9b047a78f17ec;hp=b2a0d1cfd4a0f90a58e7eb29b0c97aefa63c2233;hpb=242c55b17e6608b29a77ca17a5b677e202a3ca90;p=builder.git diff --git a/source/virtualtarget.cpp b/source/virtualtarget.cpp index b2a0d1c..44a3524 100644 --- a/source/virtualtarget.cpp +++ b/source/virtualtarget.cpp @@ -1,27 +1,26 @@ -/* $Id$ - -This file is part of builder -Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - +#include #include #include +#include "builder.h" #include "virtualtarget.h" using namespace std; using namespace Msp; +VirtualTarget::VirtualTarget(Builder &b, const string &n): + Target(b, n) +{ } + void VirtualTarget::check_rebuild() { // 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(FS::basename((*i)->get_name())+" needs rebuilding"); + auto i = find_if(depends, [](Target *d){ return d->needs_rebuild(); }); + if(i!=depends.end()) + mark_rebuild((*i)->get_name()+" needs rebuilding"); } -unsigned VirtualTarget::count_rebuild() +Task *VirtualTarget::build() { - // Don't count virtual targets since "building" them causes no action. - return Target::count_rebuild()-rebuild; + state = UPTODATE; + return 0; }