]> git.tdb.fi Git - builder.git/blobdiff - source/install.cpp
Include libmode in library lookup hash
[builder.git] / source / install.cpp
index e9be68298ee1dddda2ad6c5fd6577e730ddeb144..721f9636460f7d0b92a558733d5384443eb1e553 100644 (file)
@@ -18,7 +18,7 @@ Distributed under the LGPL
 using namespace std;
 using namespace Msp;
 
-Install::Install(Builder &b, const Package &p, Target &tgt):
+Install::Install(Builder &b, const SourcePackage &p, Target &tgt):
        Target(b, &p, generate_target_name(tgt))
 {
        buildable=true;
@@ -33,20 +33,22 @@ void Install::check_rebuild()
        {
                Target *dep=depends.front();
                if(dep->get_mtime()>mtime)
-                       mark_rebuild(Path::basename(dep->get_name())+" has changed");
+                       mark_rebuild(basename(dep->get_name())+" has changed");
                else if(dep->get_rebuild())
-                       mark_rebuild(Path::basename(dep->get_name())+" needs rebuilding");
+                       mark_rebuild(basename(dep->get_name())+" needs rebuilding");
        }
 }
 
-Action *Install::build()
+Action *Install::create_action()
 {
-       return Target::build(new Copy(builder, *package, depends.front()->get_name(), name));
+       return new Copy(builder, *package, depends.front()->get_name(), name);
 }
 
 string Install::generate_target_name(const Target &tgt)
 {
-       Path::Path base=tgt.get_package()->get_prefix();
+       const SourcePackage *spkg=dynamic_cast<const SourcePackage *>(tgt.get_package());
+
+       Path base=spkg->get_builder().get_prefix();
        string tgtname=tgt.get_name().substr(tgt.get_name().rfind('/')+1);
 
        string mid;