mandoline: Allow running the aura/views UI on android.
[chromium-blink-merge.git] / mandoline / app / android / BUILD.gn
blobbe021ea509a0942bd488aa2cf0cc01f1d21f366c
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("//third_party/mojo/src/mojo/public/mojo.gni")
8 import("//build/config/android/config.gni")
9 import("//build/config/android/rules.gni")
10 import("//mojo/generate_mojo_shell_assets_list.gni")
12 mandoline_assets_dir = "$root_build_dir/mandoline_assets"
14 group("android") {
15   deps = [
16     ":mandoline_apk",
17   ]
20 executable("mandoline_runner") {
21   deps = [
22     "//mojo/common",
23     "//mojo/environment:chromium",
24     "//mojo/runner:mojo_runner_lib",
25   ]
27   sources = [
28     "../core_services_initialization.cc",
29     "mandoline_context_init.cc",
30   ]
32   # On android, the executable is also the native library used by the apk.
33   # It means dynamic symbols must be preserved and exported.
34   ldflags = [ "-Wl,--export-dynamic" ]
37 copy("copy_mandoline_runner") {
38   deps = [
39     ":mandoline_runner",
40   ]
41   sources = [
42     "$root_out_dir/exe.stripped/mandoline_runner",
43   ]
44   outputs = [
45     "$root_out_dir/lib.stripped/libmandoline_runner.so",
46   ]
49 copy_ex("copy_mandoline_assets") {
50   clear_dir = true
51   dest = mandoline_assets_dir
52   deps = [
53     "//components/html_viewer",
54     "//components/view_manager",
55     "//components/view_manager/surfaces",
56     "//mandoline/services/core_services",
57     "//mojo/runner:bootstrap",
58     "//mojo/runner:bootstrap_java",
59     "//mojo/services/network",
60   ]
61   sources = [
62     "$root_out_dir/core_services.mojo",
63     "$root_out_dir/lib.stripped/libbootstrap.so",
64     "$root_out_dir/network_service.mojo",
65     "$root_out_dir/obj/mojo/runner/bootstrap_java.dex.jar",
66     "$root_out_dir/surfaces_service.mojo",
67   ]
69   if (use_aura) {
70     deps += [
71       "//mandoline/ui/browser",
72       "//mandoline/ui/omnibox",
73     ]
75     sources += [
76       "$root_out_dir/browser",
77       "$root_out_dir/omnibox",
78     ]
79   }
81   # Directories can't be specified as sources so pass manually to the script.
82   args =
83       [ "--files=" + rebase_path("$root_out_dir/html_viewer", root_build_dir) ]
86 generate_mojo_shell_assets_list("build_mandoline_assets") {
87   deps = [
88     ":copy_mandoline_assets",
89   ]
90   dir = mandoline_assets_dir
93 android_apk("mandoline_apk") {
94   apk_name = "Mandoline"
96   android_manifest = "apk/AndroidManifest.xml"
98   native_libs = [ "libmandoline_runner.so" ]
100   asset_location = mandoline_assets_dir
102   deps = [
103     ":build_mandoline_assets",
104     ":copy_mandoline_runner",
105     "//mojo/runner:java",
106     "//mojo/runner:resources",
107     "//base:base_java",
108     "//components/view_manager:view_manager_java",
109     "//third_party/android_tools:google_play_services_default_resources",
110   ]