X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidmanifestgenerator.cpp;h=70b1e20754d06d2b72db97a070894b8a3c571c41;hb=d1eb133ab529cdae131be7b150209f03189248f3;hp=b0c7f8fd82ef8779e35ead02ac75a92baa0fb034;hpb=68f084e4ed817da0c25cefa1772cadf97b8cfe5e;p=builder.git diff --git a/source/androidmanifestgenerator.cpp b/source/androidmanifestgenerator.cpp index b0c7f8f..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,29 +18,31 @@ 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(); + BuildInfo binfo; + manifest.collect_build_info(binfo); + IO::BufferedFile out(manifest.get_path().str(), IO::M_WRITE); out.write("\n"); IO::print(out, "\n", comp.get_name()); out.write("\t\n"); // TODO Make the icon name configurable - IO::print(out, "\t\n", pkg.get_label()); + bool debuggable = binfo.debug; + 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"); @@ -52,7 +51,9 @@ void AndroidManifestGenerator::Worker::main() out.write("\t\t\n"); } out.write("\t\n"); + for(const string &p: manifest.get_permissions()) + IO::print(out, "\t\n", p); out.write("\n"); - status = Task::SUCCESS; + return true; }