]> git.tdb.fi Git - builder.git/blobdiff - source/androidassetpackagingtool.cpp
Redesign how tools are run
[builder.git] / source / androidassetpackagingtool.cpp
index af8bc95ea422187112d5dce75927d8567803d309..a511da04986ba65eae493f31965e1becfbb4a5c5 100644 (file)
@@ -24,6 +24,8 @@ AndroidAssetPackagingTool::AndroidAssetPackagingTool(Builder &b, const AndroidSd
 
        if(sdk.get_platform_jar().empty())
                problems.push_back("Android platform not found");
+
+       set_run(_run);
 }
 
 Target *AndroidAssetPackagingTool::create_target(const vector<Target *> &sources, const string &)
@@ -47,18 +49,18 @@ Target *AndroidAssetPackagingTool::create_target(const vector<Target *> &sources
        return res;
 }
 
-Task *AndroidAssetPackagingTool::run(const Target &tgt) const
+Task *AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res)
 {
-       const AndroidResourceBundle &res = dynamic_cast<const AndroidResourceBundle &>(tgt);
+       const AndroidAssetPackagingTool &tool = dynamic_cast<const AndroidAssetPackagingTool &>(*res.get_tool());
 
        ExternalTask::Arguments argv;
-       argv.push_back(executable->get_path().str());
+       argv.push_back(tool.get_executable()->get_path().str());
        argv.push_back("package");
 
        FS::Path work_dir = res.get_component()->get_package().get_source_directory();
 
        argv.push_back("-I");
-       argv.push_back(sdk.get_platform_jar().str());
+       argv.push_back(tool.sdk.get_platform_jar().str());
 
        argv.push_back("-F");
        argv.push_back(FS::relative(res.get_path(), work_dir).str());