X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidapplicationcomponent.cpp;h=e4feaa2c2c29195560ab20d2acd7169246bbaf0e;hb=1ed833343bc83b83c5f61cbfd74423bbba677a04;hp=26277c8c02450fd8c75c065cc4f1e0a3ec090e0e;hpb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;p=builder.git diff --git a/source/androidapplicationcomponent.cpp b/source/androidapplicationcomponent.cpp index 26277c8..e4feaa2 100644 --- a/source/androidapplicationcomponent.cpp +++ b/source/androidapplicationcomponent.cpp @@ -1,4 +1,6 @@ +#include #include +#include #include "androidapplicationcomponent.h" #include "androidmanifestfile.h" #include "androidresourcefile.h" @@ -12,16 +14,12 @@ using namespace std; using namespace Msp; -AndroidApplicationComponent::AndroidApplicationComponent(SourcePackage &p, const string &n): - Component(p, n) -{ } - void AndroidApplicationComponent::create_targets() const { Builder &builder = package.get_builder(); BuildGraph &build_graph = builder.get_build_graph(); - list contents; + vector contents; for(const auto &kvp: build_graph.get_targets()) if(kvp.second->get_package()==&package) if(InstalledFile *inst = dynamic_cast(kvp.second)) @@ -32,7 +30,7 @@ void AndroidApplicationComponent::create_targets() const for(const string &p: permissions) manifest->add_permission(p); - list resource_sources; + vector resource_sources; resource_sources.push_back(manifest); const Toolchain &toolchain = builder.get_toolchain(); @@ -46,11 +44,12 @@ void AndroidApplicationComponent::create_targets() const Tool &aapt = toolchain.get_tool("AAPT"); Target *resource_bundle = aapt.create_target(resource_sources); - list apk_sources; + vector apk_sources; + apk_sources.reserve(1+contents.size()); apk_sources.push_back(resource_bundle); const Architecture &arch = package.get_builder().get_current_arch(); - string lib_dir = "//"+name+"/lib/"; + string lib_dir = format("//%s/lib/", name); if(arch.get_type()=="arm") { lib_dir += "armeabi"; @@ -60,7 +59,7 @@ void AndroidApplicationComponent::create_targets() const else lib_dir += arch.get_type(); - string assets_dir = "//"+name+"/assets"; + string assets_dir = format("//%s/assets", name); for(Target *t: contents) { Target *staged = 0; @@ -89,5 +88,6 @@ AndroidApplicationComponent::Loader::Loader(AndroidApplicationComponent &c): void AndroidApplicationComponent::Loader::permission(const string &perm) { - obj.permissions.insert(perm); + if(!any_equals(obj.permissions, perm)) + obj.permissions.push_back(perm); }