X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fvirtualtarget.cpp;h=b2a0d1cfd4a0f90a58e7eb29b0c97aefa63c2233;hb=2edc25f87590bd81808792c3c38cab5ae8b94eb3;hp=5c1e4c71a88d569b5392577edd7573e95e9e730e;hpb=59ac0a44d6edf179c01604c6ced744873213f855;p=builder.git diff --git a/source/virtualtarget.cpp b/source/virtualtarget.cpp index 5c1e4c7..b2a0d1c 100644 --- a/source/virtualtarget.cpp +++ b/source/virtualtarget.cpp @@ -1,10 +1,27 @@ +/* $Id$ + +This file is part of builder +Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#include +#include #include "virtualtarget.h" using namespace std; +using namespace Msp; void VirtualTarget::check_rebuild() { - for(list::iterator i=depends.begin(); (i!=depends.end() && !rebuild); ++i) + // 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"); + mark_rebuild(FS::basename((*i)->get_name())+" needs rebuilding"); +} + +unsigned VirtualTarget::count_rebuild() +{ + // Don't count virtual targets since "building" them causes no action. + return Target::count_rebuild()-rebuild; }