]> git.tdb.fi Git - builder.git/blobdiff - source/jarsigner.cpp
Redesign how tools are run
[builder.git] / source / jarsigner.cpp
index b8c9a5092607f2c817147bb2b877864f465705cc..ac7c779b7c1c957c56d56c47505262c9f5bf6b3f 100644 (file)
@@ -1,4 +1,4 @@
-#include <cstdlib>
+#include <msp/core/environ.h>
 #include <msp/fs/utils.h>
 #include "component.h"
 #include "externaltask.h"
@@ -13,22 +13,23 @@ JarSigner::JarSigner(Builder &b):
        Tool(b, "JSGN")
 {
        set_command("jarsigner");
+       set_run(_run);
 }
 
-Target *JarSigner::create_target(const list<Target *> &, const string &)
+Target *JarSigner::create_target(const vector<Target *> &, const string &)
 {
        throw logic_error("not implemented");
 }
 
-Task *JarSigner::run(const Target &tgt) const
+Task *JarSigner::_run(const FileTarget &file)
 {
-       const FileTarget &file = dynamic_cast<const FileTarget &>(tgt);
+       const Tool &tool = *file.get_tool();
 
        ExternalTask::Arguments argv;
-       argv.push_back(executable->get_path().str());
+       argv.push_back(tool.get_executable()->get_path().str());
 
        // TODO Make this generic
-       FS::Path home_dir = getenv("HOME");
+       FS::Path home_dir = Msp::getenv("HOME");
        argv.push_back("-keystore");
        argv.push_back((home_dir/".android"/"debug.keystore").str());
        argv.push_back("-storepass");