]> git.tdb.fi Git - builder.git/blobdiff - source/virtualtarget.cpp
Fix an incorrect assumption of target name being the basename of its path
[builder.git] / source / virtualtarget.cpp
index 5c1e4c71a88d569b5392577edd7573e95e9e730e..e22d8fc438e709f6f03d450628861d199ecc732e 100644 (file)
@@ -1,10 +1,19 @@
+#include <msp/fs/path.h>
+#include <msp/fs/utils.h>
+#include "builder.h"
 #include "virtualtarget.h"
 
 using namespace std;
+using namespace Msp;
+
+VirtualTarget::VirtualTarget(Builder &b, const string &n):
+       Target(b, 0, n)
+{ }
 
 void VirtualTarget::check_rebuild()
 {
-       for(list<Target *>::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");
 }