-#include <msp/path/utils.h>
+#include <msp/fs/path.h>
+#include <msp/fs/utils.h>
+#include "builder.h"
#include "virtualtarget.h"
using namespace std;
+using namespace Msp;
-void VirtualTarget::check_rebuild()
-{
- for(TargetList::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");
}