X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidmanifestgenerator.cpp;h=0c489825824784a6af316572406a1d338a256691;hb=1ed833343bc83b83c5f61cbfd74423bbba677a04;hp=719bf95d16672e1f53cfdc9d5c2aa8cdfa3c717a;hpb=06a867bd33f4727f2092b1bce0fb57472e2d74e9;p=builder.git diff --git a/source/androidmanifestgenerator.cpp b/source/androidmanifestgenerator.cpp index 719bf95..0c48982 100644 --- a/source/androidmanifestgenerator.cpp +++ b/source/androidmanifestgenerator.cpp @@ -3,6 +3,7 @@ #include "androidmanifestfile.h" #include "androidmanifestgenerator.h" #include "component.h" +#include "internaltask.h" #include "sharedlibrary.h" #include "sourcepackage.h" @@ -11,39 +12,37 @@ using namespace Msp; AndroidManifestGenerator::AndroidManifestGenerator(Builder &b): Tool(b, "AMG") -{ } - -Target *AndroidManifestGenerator::create_target(const list &, const string &) { - throw logic_error("not implemented"); + set_run_internal(_run); } -Task *AndroidManifestGenerator::run(const Target &target) const +Target *AndroidManifestGenerator::create_target(const vector &, const string &) { - const AndroidManifestFile &manifest = dynamic_cast(target); - Worker *worker = new Worker(manifest); - return new InternalTask(worker); + throw logic_error("not implemented"); } - -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,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; }