Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / mandoline / app / android / BUILD.gn
blob3823c04c89108982c8252b5c273e9ace8759720f
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 assert(is_android)
7 import("//build/config/android/config.gni")
8 import("//build/config/android/rules.gni")
9 import("//mojo/generate_mojo_shell_assets_list.gni")
11 mandoline_assets_dir = "$root_build_dir/mandoline_assets"
13 group("android") {
14   deps = [
15     ":mandoline_apk",
16   ]
19 executable("mandoline_runner") {
20   deps = [
21     ":jni_headers",
22     "//base",
23     "//build/config/sanitizers:deps",
24     "//mandoline/ui/desktop_ui/public/interfaces",
25     "//mojo/common",
26     "//mojo/environment:chromium",
27     "//mojo/package_manager",
28     "//mojo/runner:lib",
29     "//mojo/runner:mojo_runner_lib",
30     "//mojo/shell",
31   ]
33   sources = [
34     "../core_services_initialization.cc",
35     "mandoline_activity.cc",
36     "mandoline_context_init.cc",
37   ]
39   # On android, the executable is also the native library used by the apk.
40   # It means dynamic symbols must be preserved and exported.
41   ldflags = [ "-Wl,--export-dynamic" ]
44 copy("copy_mandoline_runner") {
45   deps = [
46     ":mandoline_runner",
47   ]
48   sources = [
49     "$root_out_dir/mandoline_runner",
50   ]
51   outputs = [
52     "$root_shlib_dir/${shlib_prefix}mandoline_runner$shlib_extension",
53   ]
56 copy_ex("copy_mandoline_assets") {
57   clear_dir = true
58   dest = mandoline_assets_dir
59   deps = [
60     "//components/devtools_service",
61     "//components/html_viewer",
62     "//components/resource_provider",
63     "//mandoline/services/core_services",
64     "//mojo/runner:bootstrap",
65     "//mojo/runner:bootstrap_java",
66     "//mojo/services/network",
67   ]
68   sources = [
69     "$root_out_dir/obj/mojo/runner/bootstrap_java.dex.jar",
70     "$root_shlib_dir/${shlib_prefix}bootstrap$shlib_extension",
71   ]
73   # Directories can't be specified as sources so pass manually to the script.
74   args = [
75     "--files=" + rebase_path("$root_out_dir/core_services", root_build_dir),
76     "--files=" + rebase_path("$root_out_dir/network_service", root_build_dir),
77     "--files=" + rebase_path("$root_out_dir/resource_provider", root_build_dir),
78     "--files=" + rebase_path("$root_out_dir/devtools_service", root_build_dir),
79     "--files=" + rebase_path("$root_out_dir/html_viewer", root_build_dir),
80   ]
82   if (use_aura) {
83     deps += [ "//mandoline/ui" ]
85     args += [
86       "--files=" + rebase_path("$root_out_dir/omnibox", root_build_dir),
87       "--files=" + rebase_path("$root_out_dir/phone_ui", root_build_dir),
88     ]
89   }
92 generate_mojo_shell_assets_list("build_mandoline_assets") {
93   deps = [
94     ":copy_mandoline_assets",
95   ]
96   dir = mandoline_assets_dir
99 android_library("java") {
100   java_files = [ "apk/src/org/chromium/mandoline/MandolineActivity.java" ]
102   deps = [
103     "//mojo/runner:java",
104     "//base:base_java",
105   ]
108 generate_jni("jni_headers") {
109   sources = [
110     "apk/src/org/chromium/mandoline/MandolineActivity.java",
111   ]
112   jni_package = "mandoline"
115 android_resources("mandoline_apk_resources") {
116   custom_package = "org.chromium.mandoline"
117   resource_dirs = [ "apk/res" ]
120 android_apk("mandoline_apk") {
121   apk_name = "Mandoline"
123   android_manifest = "apk/AndroidManifest.xml"
125   native_libs = [ "${shlib_prefix}mandoline_runner$shlib_extension" ]
127   asset_location = mandoline_assets_dir
129   deps = [
130     ":build_mandoline_assets",
131     ":copy_mandoline_runner",
132     ":java",
133     ":mandoline_apk_resources",
134     "//mojo/runner:java",
135     "//mojo/runner:resources",
136     "//base:base_java",
137     "//ui/platform_window/android:platform_window_java",
138     google_play_services_resources,
139   ]