+#include <msp/core/algorithm.h>
#include <msp/fs/path.h>
#include <msp/fs/utils.h>
#include "builder.h"
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;
}