X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvirtualtarget.cpp;h=3a3b254e99945e52245e3d1d06bb6e8047493e01;hb=0dd3d23846e7fdb729359a57d3f4b190f65aed55;hp=e44eecc5828b99b4e230d4c3c29692fdafedc112;hpb=9976a7bdf0e53966dce4bc828a37eb42de0223e3;p=builder.git diff --git a/source/virtualtarget.cpp b/source/virtualtarget.cpp index e44eecc..3a3b254 100644 --- a/source/virtualtarget.cpp +++ b/source/virtualtarget.cpp @@ -1,16 +1,19 @@ -#include +#include +#include +#include "builder.h" #include "virtualtarget.h" using namespace std; +using namespace Msp; -void VirtualTarget::check_rebuild() -{ - for(list::iterator i=depends.begin(); (i!=depends.end() && !rebuild); ++i) - if((*i)->get_rebuild()) - mark_rebuild(Msp::Path::basename((*i)->get_name())+" needs rebuilding"); -} +VirtualTarget::VirtualTarget(Builder &b, const string &n): + Target(b, n) +{ } -unsigned VirtualTarget::count_rebuild() +void VirtualTarget::check_rebuild() { - return Target::count_rebuild()-rebuild; + // Virtual targets are only rebuilt if their dependencies need rebuilding. + for(Dependencies::iterator i=depends.begin(); (i!=depends.end() && !needs_rebuild()); ++i) + if((*i)->needs_rebuild()) + mark_rebuild((*i)->get_name()+" needs rebuilding"); }