X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidmanifestgenerator.cpp;h=70b1e20754d06d2b72db97a070894b8a3c571c41;hb=d1eb133ab529cdae131be7b150209f03189248f3;hp=156dfb35fd9abcdbca33710c5ce4f70b2edf71a0;hpb=3e23be616412a2b9b9a3348dad618fb399f96f67;p=builder.git diff --git a/source/androidmanifestgenerator.cpp b/source/androidmanifestgenerator.cpp index 156dfb3..70b1e20 100644 --- a/source/androidmanifestgenerator.cpp +++ b/source/androidmanifestgenerator.cpp @@ -3,17 +3,14 @@ #include "androidmanifestfile.h" #include "androidmanifestgenerator.h" #include "component.h" +#include "internaltask.h" #include "sharedlibrary.h" #include "sourcepackage.h" using namespace std; using namespace Msp; -AndroidManifestGenerator::AndroidManifestGenerator(Builder &b): - Tool(b, "AMG") -{ } - -Target *AndroidManifestGenerator::create_target(const list &, const string &) +Target *AndroidManifestGenerator::create_target(const vector &, const string &) { throw logic_error("not implemented"); } @@ -21,16 +18,10 @@ Target *AndroidManifestGenerator::create_target(const list &, const st Task *AndroidManifestGenerator::run(const Target &target) const { const AndroidManifestFile &manifest = dynamic_cast(target); - Worker *worker = new Worker(manifest); - return new InternalTask(worker); + return new InternalTask([&manifest]{ return _run(manifest); }); } - -AndroidManifestGenerator::Worker::Worker(const AndroidManifestFile &m): - manifest(m) -{ } - -void AndroidManifestGenerator::Worker::main() +bool AndroidManifestGenerator::_run(const AndroidManifestFile &manifest) { const Component &comp = *manifest.get_component(); const SourcePackage &pkg = comp.get_package(); @@ -47,7 +38,11 @@ void AndroidManifestGenerator::Worker::main() IO::print(out, "\t\n", pkg.get_label(), debuggable); if(SharedLibrary *native_lib = manifest.get_native_library()) { - out.write("\t\t\n"); + out.write("\t\t\n"); IO::print(out, "\t\t\t\n", native_lib->get_libname()); out.write("\t\t\t\n"); out.write("\t\t\t\t\n"); @@ -56,10 +51,9 @@ void AndroidManifestGenerator::Worker::main() out.write("\t\t\n"); } out.write("\t\n"); - const set &permissions = manifest.get_permissions(); - for(set::const_iterator i=permissions.begin(); i!=permissions.end(); ++i) - IO::print(out, "\t\n", *i); + for(const string &p: manifest.get_permissions()) + IO::print(out, "\t\n", p); out.write("\n"); - status = Task::SUCCESS; + return true; }