blob: 59bbcb4935333fb7ce649300bfd2476941fd3f78 [file] [log] [blame]
# 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,
]
}