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;
{
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;