]> git.tdb.fi Git - builder.git/blobdiff - source/apkbuilder.cpp
Add gcc's private library directory to ClangLinker's system path
[builder.git] / source / apkbuilder.cpp
index e487784f4eeebf2df37d974a01432fb70e00d85a..f62e4851526b99d9d066b267e4718543a3b8ba05 100644 (file)
@@ -38,14 +38,16 @@ 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)
+Task *ApkBuilder::_run(const Target &tgt)
 {
+       const AndroidPackageFile &apk = dynamic_cast<const AndroidPackageFile &>(tgt);
        const ApkBuilder &tool = dynamic_cast<const ApkBuilder &>(*apk.get_tool());
 
        ExternalTask::Arguments argv;
@@ -75,6 +77,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;
 }