]> git.tdb.fi Git - builder.git/blobdiff - source/androidapplicationcomponent.cpp
Refactor transitive dependencies to work on all targets
[builder.git] / source / androidapplicationcomponent.cpp
diff --git a/source/androidapplicationcomponent.cpp b/source/androidapplicationcomponent.cpp
deleted file mode 100644 (file)
index 212db7d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#include <msp/fs/utils.h>
-#include <msp/strings/format.h>
-#include "androidapplicationcomponent.h"
-#include "androidmanifestfile.h"
-#include "androidresourcefile.h"
-#include "builder.h"
-#include "installedfile.h"
-#include "sharedlibrary.h"
-#include "sourcepackage.h"
-#include "tool.h"
-#include "toolchain.h"
-
-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();
-
-       vector<Target *> contents;
-       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);
-
-       vector<Target *> resource_sources;
-       resource_sources.push_back(manifest);
-
-       const Toolchain &toolchain = builder.get_toolchain();
-       Tool &copy = toolchain.get_tool("CP");
-       for(const FS::Path &s: collect_source_files())
-       {
-               Target *tgt = new AndroidResourceFile(builder, *this, s);
-               resource_sources.push_back(copy.create_target(*tgt, "//"));
-       }
-
-       Tool &aapt = toolchain.get_tool("AAPT");
-       Target *resource_bundle = aapt.create_target(resource_sources);
-
-       vector<Target *> 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 = format("//%s/lib/", name);
-       if(arch.get_type()=="arm")
-       {
-               lib_dir += "armeabi";
-               if(arch.get_cpu()=="armv7a")
-                       lib_dir += "-v7a";
-       }
-       else
-               lib_dir += arch.get_type();
-
-       string assets_dir = format("//%s/assets", name);
-       for(Target *t: contents)
-       {
-               Target *staged = 0;
-               if(SharedLibrary *shlib = dynamic_cast<SharedLibrary *>(t))
-               {
-                       manifest->set_native_library(shlib);
-                       staged = copy.create_target(*t, lib_dir);
-               }
-               else
-                       staged = copy.create_target(*t, assets_dir);
-               apk_sources.push_back(staged);
-       }
-
-       Tool &apk_builder = toolchain.get_tool("APK");
-       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);
-}