X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidassetpackagingtool.cpp;fp=source%2Fandroidassetpackagingtool.cpp;h=0000000000000000000000000000000000000000;hb=c8e829c219c65ff8e93b6c7b66212ff0876441c5;hp=eb638e96d6fb01763732c267d2e70b08d8cae588;hpb=e2c9c3fffcc61a0c102ccf6a7924e2de709092ad;p=builder.git diff --git a/source/androidassetpackagingtool.cpp b/source/androidassetpackagingtool.cpp deleted file mode 100644 index eb638e9..0000000 --- a/source/androidassetpackagingtool.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include -#include "androidassetpackagingtool.h" -#include "androidmanifestfile.h" -#include "androidresourcebundle.h" -#include "androidtools.h" -#include "component.h" -#include "sourcepackage.h" - -using namespace std; -using namespace Msp; - -AndroidAssetPackagingTool::AndroidAssetPackagingTool(Builder &b, const AndroidSdk &s): - Tool(b, "AAPT"), - sdk(s) -{ - if(sdk.get_root_dir().empty()) - problems.push_back("Android SDK not found"); - else if(sdk.get_build_tools_dir().empty()) - problems.push_back("Android build-tools not found"); - else - set_command((sdk.get_build_tools_dir()/"aapt").str()); - - if(sdk.get_platform_jar().empty()) - problems.push_back("Android platform not found"); - - set_run_external(_run); -} - -Target *AndroidAssetPackagingTool::create_target(const vector &sources, const string &) -{ - AndroidManifestFile *manifest = 0; - vector resources; - resources.reserve(sources.size()); - for(Target *s: sources) - { - if(AndroidManifestFile *m = dynamic_cast(s)) - manifest = m; - else if(FileTarget *f = dynamic_cast(s)) - resources.push_back(f); - } - - if(!manifest) - throw invalid_argument("AndroidAssetPackagingTool::create_target"); - - AndroidResourceBundle *res = new AndroidResourceBundle(builder, *manifest->get_component(), *manifest, resources); - res->set_tool(*this); - return res; -} - -ExternalTask::Arguments AndroidAssetPackagingTool::_run(const AndroidResourceBundle &res, FS::Path &work_dir) -{ - const AndroidAssetPackagingTool &tool = dynamic_cast(*res.get_tool()); - - ExternalTask::Arguments argv; - argv.push_back(tool.get_executable()->get_path().str()); - argv.push_back("package"); - - argv.push_back("-I"); - argv.push_back(tool.sdk.get_platform_jar().str()); - - argv.push_back("-F"); - argv.push_back(FS::relative(res.get_path(), work_dir).str()); - - vector resource_dirs; - resource_dirs.reserve(res.get_dependencies().size()); - for(Target *d: res.get_dependencies()) - { - FileTarget *file = dynamic_cast(d); - Target *real = d->get_real_target(); - - if(dynamic_cast(real)) - { - argv.push_back("-M"); - argv.push_back(FS::relative(file->get_path(), work_dir).str()); - } - else if(real->get_package()==res.get_package()) - { - const FS::Path &path = file->get_path(); - FS::Path res_dir = path.subpath(0, path.size()-2); - if(!any_equals(resource_dirs, res_dir)) - resource_dirs.push_back(res_dir); - } - } - - for(const FS::Path &d: resource_dirs) - { - argv.push_back("-S"); - argv.push_back(FS::relative(d, work_dir).str()); - } - - return argv; -}