Builder &builder = package.get_builder();
BuildGraph &build_graph = builder.get_build_graph();
- const BuildGraph::TargetMap &targets = build_graph.get_targets();
list<Target *> contents;
- for(BuildGraph::TargetMap::const_iterator i=targets.begin(); i!=targets.end(); ++i)
- if(i->second->get_package()==&package)
- if(InstalledFile *inst = dynamic_cast<InstalledFile *>(i->second))
+ for(const auto &kvp: build_graph.get_targets())
+ if(kvp.second->get_package()==&package)
+ if(InstalledFile *inst = dynamic_cast<InstalledFile *>(kvp.second))
contents.push_back(inst->get_real_target());
AndroidManifestFile *manifest = new AndroidManifestFile(builder, *this);
+ manifest->set_orientation(orientation);
+ for(const string &p: permissions)
+ manifest->add_permission(p);
list<Target *> resource_sources;
resource_sources.push_back(manifest);
const Toolchain &toolchain = builder.get_toolchain();
Tool © = toolchain.get_tool("CP");
- SourceList source_filenames = collect_source_files();
- for(SourceList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
+ for(const FS::Path &s: collect_source_files())
{
- Target *tgt = new AndroidResourceFile(builder, *this, *i);
+ Target *tgt = new AndroidResourceFile(builder, *this, s);
resource_sources.push_back(copy.create_target(*tgt, "//"));
}
lib_dir += arch.get_type();
string assets_dir = "//"+name+"/assets";
- for(list<Target *>::const_iterator i=contents.begin(); i!=contents.end(); ++i)
+ for(Target *t: contents)
{
Target *staged = 0;
- if(SharedLibrary *shlib = dynamic_cast<SharedLibrary *>(*i))
+ if(SharedLibrary *shlib = dynamic_cast<SharedLibrary *>(t))
{
manifest->set_native_library(shlib);
- staged = copy.create_target(**i, lib_dir);
+ staged = copy.create_target(*t, lib_dir);
}
else
- staged = copy.create_target(**i, assets_dir);
+ staged = copy.create_target(*t, assets_dir);
apk_sources.push_back(staged);
}
Target *apk = apk_builder.create_target(apk_sources);
builder.get_build_graph().add_primary_target(*apk);
}
+
+
+AndroidApplicationComponent::Loader::Loader(AndroidApplicationComponent &c):
+ DataFile::DerivedObjectLoader<AndroidApplicationComponent, Component::Loader>(c)
+{
+ add("orientation", &AndroidApplicationComponent::orientation);
+ add("permission", &Loader::permission);
+}
+
+void AndroidApplicationComponent::Loader::permission(const string &perm)
+{
+ obj.permissions.insert(perm);
+}