Tool(b, "APK")
{
set_command("jar");
+ set_run(_run);
}
Target *ApkBuilder::create_target(const vector<Target *> &sources, const string &)
jarsigner->prepare();
}
-Task *ApkBuilder::run(const Target &tgt) const
+Task *ApkBuilder::_run(const AndroidPackageFile &apk)
{
- const AndroidPackageFile &apk = dynamic_cast<const AndroidPackageFile &>(tgt);
+ const ApkBuilder &tool = dynamic_cast<const ApkBuilder &>(*apk.get_tool());
ExternalTask::Arguments argv;
- argv.push_back(executable->get_path().str());
+ argv.push_back(tool.get_executable()->get_path().str());
argv.push_back("u");
FS::Path input_path;
task->set_stdin(FS::basename(input_path));
task->set_stdout(FS::relative(apk.get_path(), work_dir));
ChainedTask *chain = new ChainedTask(task);
- chain->add_task(jarsigner->run(tgt));
+ chain->add_task(tool.jarsigner->run(apk));
return chain;
}