]> git.tdb.fi Git - builder.git/blobdiff - source/apkbuilder.cpp
Rework Tool::prepare to be able to work on other objects than self
[builder.git] / source / apkbuilder.cpp
index e487784f4eeebf2df37d974a01432fb70e00d85a..e426c89319d4fd4fb2314f9de302a64ae49ff9e3 100644 (file)
@@ -38,10 +38,11 @@ Target *ApkBuilder::create_target(const vector<Target *> &sources, const string
        return apk;
 }
 
-void ApkBuilder::do_prepare()
+void ApkBuilder::do_prepare(ToolData &tool) const
 {
-       jarsigner = &builder.get_toolchain().get_tool("JSGN");
+       Tool *jarsigner = &builder.get_toolchain().get_tool("JSGN");
        jarsigner->prepare();
+       tool.extra_data = jarsigner;
 }
 
 Task *ApkBuilder::_run(const AndroidPackageFile &apk)
@@ -75,6 +76,6 @@ Task *ApkBuilder::_run(const AndroidPackageFile &apk)
        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(tool.jarsigner->run(apk));
+       chain->add_task(tool.extra_data.value<Tool *>()->run(apk));
        return chain;
 }