Add gn support for generating mojo_shell_apk
BUG=
R=jamesr@chromium.org
Review URL: https://codereview.chromium.org/674013002
diff --git a/mojo/services/native_viewport/BUILD.gn b/mojo/services/native_viewport/BUILD.gn
index ed428c4..0935818 100644
--- a/mojo/services/native_viewport/BUILD.gn
+++ b/mojo/services/native_viewport/BUILD.gn
@@ -4,10 +4,25 @@
import("//build/config/ui.gni")
-if (!is_android) {
+if (is_android) {
+ import("//build/config/android/config.gni")
+ import("//build/config/android/rules.gni")
+
+ android_library("native_viewport_java") {
+ java_files = [
+ "android/src/org/chromium/mojo/PlatformViewportAndroid.java",
+ ]
+
+ deps = [
+ "//base:base_java",
+ ]
+ }
+} else {
shared_library("native_viewport") {
output_name = "native_viewport_service"
+ sources = [ "main.cc" ]
+
deps = [
":lib",
"//base",
@@ -18,12 +33,34 @@
"//mojo/services/public/cpp/native_viewport:args",
"//ui/gl",
]
-
- sources = [ "main.cc" ]
}
}
source_set("lib") {
+ sources = [
+ "gpu_impl.cc",
+ "gpu_impl.h",
+ "native_viewport_impl.cc",
+ "native_viewport_impl.h",
+ "platform_viewport.h",
+ "platform_viewport_android.cc",
+ "platform_viewport_android.h",
+ "platform_viewport_mac.mm",
+ "platform_viewport_headless.cc",
+ "platform_viewport_headless.h",
+ "platform_viewport_win.cc",
+ "viewport_surface.cc",
+ "viewport_surface.h",
+ ]
+
+ if (is_ios) {
+ sources += [ "platform_viewport_stub.cc" ]
+ }
+
+ if (use_ozone) {
+ sources += [ "platform_viewport_ozone.cc" ]
+ }
+
deps = [
"//base",
"//cc/surfaces",
@@ -47,39 +84,16 @@
"//ui/platform_window",
]
- sources = [
- "gpu_impl.cc",
- "gpu_impl.h",
- "native_viewport_impl.cc",
- "native_viewport_impl.h",
- "platform_viewport.h",
- "platform_viewport_android.cc",
- "platform_viewport_android.h",
- "platform_viewport_mac.mm",
- "platform_viewport_headless.cc",
- "platform_viewport_headless.h",
- "platform_viewport_win.cc",
- "viewport_surface.cc",
- "viewport_surface.h",
- ]
-
- if (is_ios) {
- sources += [ "platform_viewport_stub.cc" ]
- }
-
if (is_android) {
deps += [ "//mojo:jni_headers" ]
}
if (use_x11) {
sources += [ "platform_viewport_x11.cc" ]
+
deps += [
"//ui/events/platform/x11",
"//ui/platform_window/x11",
]
}
-
- if (use_ozone) {
- sources += [ "platform_viewport_ozone.cc" ]
- }
}
diff --git a/mojo/shell/BUILD.gn b/mojo/shell/BUILD.gn
index 491dd17..1a09074 100644
--- a/mojo/shell/BUILD.gn
+++ b/mojo/shell/BUILD.gn
@@ -6,10 +6,19 @@
import("//mojo/public/mojo.gni")
import("//mojo/public/tools/bindings/mojom.gni")
+if (is_android) {
+ import("//build/config/android/config.gni")
+ import("//build/config/android/rules.gni")
+}
+
if (!use_prebuilt_mojo_shell) {
# GYP version: mojo/mojo.gyp:mojo_shell
executable("mojo_shell") {
+ sources = [
+ "desktop/mojo_main.cc"
+ ]
+
deps = [
":lib",
"//base",
@@ -20,33 +29,12 @@
if (is_component_build) {
deps += ["//ui/gl"]
}
-
- sources = [
- "desktop/mojo_main.cc"
- ]
}
} # !use_prebuilt_mojo_shell
# GYP version: mojo/mojo.gyp:mojo_shell_lib
source_set("lib") {
- deps = [
- ":app_child_process_bindings",
- ":external_application_registrar_bindings",
- ":external_service_bindings",
- "//base",
- "//base/third_party/dynamic_annotations",
- "//base:base_static",
- "//mojo/application",
- "//mojo/application_manager",
- "//mojo/common",
- "//mojo/edk/system",
- "//mojo/gles2",
- "//mojo/public/interfaces/application",
- "//mojo/services/public/interfaces/network",
- "//mojo/spy",
- ]
-
sources = [
"app_child_process.cc",
"app_child_process.h",
@@ -86,15 +74,91 @@
"ui_application_loader_android.h",
]
+ deps = [
+ ":app_child_process_bindings",
+ ":external_application_registrar_bindings",
+ ":external_service_bindings",
+ "//base",
+ "//base/third_party/dynamic_annotations",
+ "//base:base_static",
+ "//mojo/application",
+ "//mojo/application_manager",
+ "//mojo/common",
+ "//mojo/edk/system",
+ "//mojo/gles2",
+ "//mojo/public/interfaces/application",
+ "//mojo/services/public/interfaces/network",
+ "//mojo/spy",
+ ]
+
if (is_android) {
- deps += [
- "//mojo/services/native_viewport:lib",
- "//mojo/services/network:lib",
- ]
sources += [
"network_application_loader.cc",
"network_application_loader.h",
]
+
+ deps += [
+ "//mojo/services/native_viewport:lib",
+ "//mojo/services/network:lib",
+ ]
+ }
+}
+
+if (is_android) {
+ generate_jni("jni_headers") {
+ sources = [
+ "android/apk/src/org/chromium/mojo_shell_apk/MojoMain.java",
+ ]
+ jni_package = "mojo"
+ }
+
+ android_library("java") {
+ java_files = [
+ "android/apk/src/org/chromium/mojo_shell_apk/MojoMain.java",
+ "android/apk/src/org/chromium/mojo_shell_apk/MojoShellActivity.java",
+ "android/apk/src/org/chromium/mojo_shell_apk/MojoShellApplication.java",
+ ]
+
+ deps = [
+ "//base:base_java",
+ "//net/android:net_java",
+ ]
+ }
+
+ android_resources("resources") {
+ resource_dirs = [ "android/apk/res" ]
+ custom_package = "org.chromium.mojo_shell_apk"
+ }
+
+ shared_library("libmojo_shell") {
+ sources = [
+ "android/library_loader.cc",
+ "android/mojo_main.cc",
+ "android/mojo_main.h",
+ ]
+ deps = [
+ ":jni_headers",
+ ":lib",
+ "//ui/gl",
+ ]
+ }
+
+ android_apk("mojo_shell_apk") {
+ apk_name = "MojoShell"
+
+ android_manifest = "android/apk/AndroidManifest.xml"
+
+ native_libs = [
+ "libmojo_shell.so"
+ ]
+
+ deps = [
+ ":java",
+ ":libmojo_shell",
+ ":resources",
+ "//mojo/services/native_viewport:native_viewport_java",
+ ]
+
}
}
@@ -132,6 +196,17 @@
# GYP version: mojo/mojo.gyp:mojo_shell_tests
test("mojo_shell_tests") {
+ sources = [
+ "child_process_host_unittest.cc",
+ "dynamic_application_loader_unittest.cc",
+ "in_process_dynamic_service_runner_unittest.cc",
+ "mojo_url_resolver_unittest.cc",
+ "shell_test_base.cc",
+ "shell_test_base.h",
+ "shell_test_base_unittest.cc",
+ "shell_test_main.cc",
+ ]
+
deps = [
":lib",
"//base",
@@ -152,17 +227,6 @@
"//mojo/services/test_service:test_request_tracker_app",
]
- sources = [
- "child_process_host_unittest.cc",
- "dynamic_application_loader_unittest.cc",
- "in_process_dynamic_service_runner_unittest.cc",
- "mojo_url_resolver_unittest.cc",
- "shell_test_base.cc",
- "shell_test_base.h",
- "shell_test_base_unittest.cc",
- "shell_test_main.cc",
- ]
-
if (is_android) {
deps += [
# TODO(GYP):
@@ -186,6 +250,12 @@
# GYP version: mojo/mojo.gyp:external_application_tests
test("mojo_external_application_tests") {
+ sources = [
+ "incoming_connection_listener_unittest.cc",
+ "external_application_listener_unittest.cc",
+ "external_application_test_main.cc",
+ ]
+
deps = [
":lib",
":external_application_registrar_connection",
@@ -199,10 +269,4 @@
"//mojo/edk/system",
"//mojo/environment:chromium",
]
-
- sources = [
- "incoming_connection_listener_unittest.cc",
- "external_application_listener_unittest.cc",
- "external_application_test_main.cc",
- ]
}