| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| assert(is_android) |
| |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//mojo/generate_mojo_shell_assets_list.gni") |
| |
| mandoline_assets_dir = "$root_build_dir/mandoline_assets" |
| |
| group("android") { |
| deps = [ |
| ":mandoline_apk", |
| ] |
| } |
| |
| executable("mandoline_runner") { |
| deps = [ |
| ":jni_headers", |
| "//base", |
| "//build/config/sanitizers:deps", |
| "//mandoline/ui/desktop_ui/public/interfaces", |
| "//mojo/common", |
| "//mojo/environment:chromium", |
| "//mojo/package_manager", |
| "//mojo/runner:lib", |
| "//mojo/runner:mojo_runner_lib", |
| "//mojo/runner:register_local_aliases_fwd", |
| "//mojo/shell", |
| ] |
| |
| sources = [ |
| "../register_local_aliases.cc", |
| "mandoline_activity.cc", |
| "mandoline_context_init.cc", |
| ] |
| |
| # On android, the executable is also the native library used by the apk. |
| # It means dynamic symbols must be preserved and exported. |
| ldflags = [ "-Wl,--export-dynamic" ] |
| } |
| |
| copy("copy_mandoline_runner") { |
| deps = [ |
| ":mandoline_runner", |
| ] |
| sources = [ |
| "$root_out_dir/mandoline_runner", |
| ] |
| outputs = [ |
| "$root_shlib_dir/${shlib_prefix}mandoline_runner$shlib_extension", |
| ] |
| } |
| |
| copy_ex("copy_mandoline_assets") { |
| clear_dir = true |
| dest = mandoline_assets_dir |
| deps = [ |
| "//components/devtools_service", |
| "//components/html_viewer", |
| "//components/resource_provider", |
| "//mandoline/services/core_services", |
| "//mojo/runner:bootstrap", |
| "//mojo/runner:bootstrap_java", |
| "//mojo/services/network", |
| ] |
| sources = [ |
| "$root_out_dir/obj/mojo/runner/bootstrap_java.dex.jar", |
| "$root_shlib_dir/${shlib_prefix}bootstrap$shlib_extension", |
| ] |
| |
| # Directories can't be specified as sources so pass manually to the script. |
| args = [ |
| "--files=" + rebase_path("$root_out_dir/core_services", root_build_dir), |
| "--files=" + rebase_path("$root_out_dir/network_service", root_build_dir), |
| "--files=" + rebase_path("$root_out_dir/resource_provider", root_build_dir), |
| "--files=" + rebase_path("$root_out_dir/devtools_service", root_build_dir), |
| "--files=" + rebase_path("$root_out_dir/html_viewer", root_build_dir), |
| ] |
| |
| if (use_aura) { |
| deps += [ "//mandoline/ui" ] |
| |
| args += [ |
| "--files=" + rebase_path("$root_out_dir/omnibox", root_build_dir), |
| "--files=" + rebase_path("$root_out_dir/phone_ui", root_build_dir), |
| ] |
| } |
| } |
| |
| generate_mojo_shell_assets_list("build_mandoline_assets") { |
| deps = [ |
| ":copy_mandoline_assets", |
| ] |
| dir = mandoline_assets_dir |
| } |
| |
| android_library("java") { |
| java_files = [ "apk/src/org/chromium/mandoline/MandolineActivity.java" ] |
| |
| deps = [ |
| "//base:base_java", |
| "//mojo/runner:java", |
| ] |
| } |
| |
| generate_jni("jni_headers") { |
| sources = [ |
| "apk/src/org/chromium/mandoline/MandolineActivity.java", |
| ] |
| jni_package = "mandoline" |
| } |
| |
| android_resources("mandoline_apk_resources") { |
| custom_package = "org.chromium.mandoline" |
| resource_dirs = [ "apk/res" ] |
| } |
| |
| android_apk("mandoline_apk") { |
| apk_name = "Mandoline" |
| |
| android_manifest = "apk/AndroidManifest.xml" |
| |
| native_libs = [ "${shlib_prefix}mandoline_runner$shlib_extension" ] |
| |
| asset_location = mandoline_assets_dir |
| |
| deps = [ |
| ":build_mandoline_assets", |
| ":copy_mandoline_runner", |
| ":java", |
| ":mandoline_apk_resources", |
| "//base:base_java", |
| "//mojo/runner:java", |
| "//mojo/runner:resources", |
| "//ui/platform_window/android:platform_window_java", |
| google_play_services_resources, |
| ] |
| } |