]> git.tdb.fi Git - builder.git/blobdiff - source/androidassetpackagingtool.cpp
Refactor the use of external tasks in tools
[builder.git] / source / androidassetpackagingtool.cpp
index a511da04986ba65eae493f31965e1becfbb4a5c5..eb638e96d6fb01763732c267d2e70b08d8cae588 100644 (file)
@@ -5,7 +5,6 @@
 #include "androidresourcebundle.h"
 #include "androidtools.h"
 #include "component.h"
-#include "externaltask.h"
 #include "sourcepackage.h"
 
 using namespace std;
@@ -25,7 +24,7 @@ AndroidAssetPackagingTool::AndroidAssetPackagingTool(Builder &b, const AndroidSd
        if(sdk.get_platform_jar().empty())
                problems.push_back("Android platform not found");
 
-       set_run(_run);
+       set_run_external(_run);
 }
 
 Target *AndroidAssetPackagingTool::create_target(const vector<Target *> &sources, const string &)
@@ -49,7 +48,7 @@ Target *AndroidAssetPackagingTool::create_target(const vector<Target *> &sources
        return res;
 }
 
-Task *AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res)
+ExternalTask::Arguments AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res, FS::Path &work_dir)
 {
        const AndroidAssetPackagingTool &tool = dynamic_cast<const AndroidAssetPackagingTool &>(*res.get_tool());
 
@@ -57,8 +56,6 @@ Task *AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res)
        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(tool.sdk.get_platform_jar().str());
 
@@ -92,5 +89,5 @@ Task *AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res)
                argv.push_back(FS::relative(d, work_dir).str());
        }
 
-       return new ExternalTask(argv, work_dir);
+       return argv;
 }