blob: cfd97a955bfdd31350421cb1b83af7b42d0245ac [file] [log] [blame]
# Copyright 2014 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.
import("//build/config/ui.gni")
import("//mojo/public/mojo.gni")
import("//mojo/public/tools/bindings/mojom.gni")
# We don't support building in the component build since mojo apps are
# inherently components.
assert(!is_component_build)
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
if (!use_prebuilt_mojo_shell) {
executable("mojo_shell") {
sources = [
"desktop/mojo_main.cc"
]
deps = [
":lib",
"//base",
"//build/config/sanitizers:deps",
"//mojo/common",
"//mojo/environment:chromium",
]
}
} # !use_prebuilt_mojo_shell
executable("mojo_launcher") {
sources = [
"launcher_main.cc"
]
deps = [
":external_application_registrar_bindings",
":external_application_registrar_connection",
":in_process_dynamic_service_runner",
"//base",
"//build/config/sanitizers:deps",
"//mojo/common",
"//mojo/edk/system",
"//mojo/environment:chromium",
]
}
source_set("in_process_dynamic_service_runner") {
sources = [
"dynamic_service_runner.cc",
"dynamic_service_runner.h",
"in_process_dynamic_service_runner.cc",
"in_process_dynamic_service_runner.h",
]
deps = [
"//mojo/gles2",
]
}
source_set("lib") {
sources = [
"app_child_process.cc",
"app_child_process.h",
"app_child_process_host.cc",
"app_child_process_host.h",
"child_process.cc",
"child_process.h",
"child_process_host.cc",
"child_process_host.h",
"context.cc",
"context.h",
"data_pipe_peek.cc",
"data_pipe_peek.h",
"dynamic_application_loader.cc",
"dynamic_application_loader.h",
"external_application_listener.h",
"external_application_listener_posix.cc",
"external_application_listener_win.cc",
"filename_util.cc",
"filename_util.h",
"incoming_connection_listener_posix.cc",
"incoming_connection_listener_posix.h",
"init.cc",
"init.h",
"mojo_url_resolver.cc",
"mojo_url_resolver.h",
"out_of_process_dynamic_service_runner.cc",
"out_of_process_dynamic_service_runner.h",
"switches.cc",
"switches.h",
"task_runners.cc",
"task_runners.h",
"test_child_process.cc",
"test_child_process.h",
"ui_application_loader_android.cc",
"ui_application_loader_android.h",
]
deps = [
":app_child_process_bindings",
":external_application_registrar_bindings",
":external_service_bindings",
":in_process_dynamic_service_runner",
"//base",
"//base/third_party/dynamic_annotations",
"//base:base_static",
"//mojo/application",
"//mojo/application_manager",
"//mojo/common",
"//mojo/edk/system",
"//mojo/public/interfaces/application",
"//mojo/services/public/interfaces/network",
"//mojo/shell/domain_socket",
"//mojo/spy",
]
if (is_win) {
deps -= [
"//mojo/shell/domain_socket",
]
}
if (is_android) {
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",
]
}
}
mojom("app_child_process_bindings") {
sources = [
"app_child_process.mojom"
]
}
mojom("external_service_bindings") {
sources = [
"external_service.mojom"
]
}
mojom("external_application_registrar_bindings") {
sources = [
"external_application_registrar.mojom"
]
deps = [ "//mojo/public/interfaces/application" ]
}
source_set("external_application_registrar_connection") {
sources = [
"external_application_registrar_connection.cc",
"external_application_registrar_connection.h",
]
deps = [
":external_application_registrar_bindings",
"//mojo/shell/domain_socket"
]
if (is_win) {
deps -= [
"//mojo/shell/domain_socket"
]
}
}
# GYP version: mojo/mojo.gyp:mojo_shell_tests
test("mojo_shell_tests") {
sources = [
"child_process_host_unittest.cc",
"data_pipe_peek_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",
"//base:i18n",
"//base/test:test_support",
"//testing/gtest",
"//net:test_support",
"//url",
"//mojo/application_manager",
"//mojo/common",
"//mojo/edk/system",
"//mojo/environment:chromium",
"//mojo/services/test_service:bindings",
]
datadeps = [
"//mojo/services/test_service:test_app",
"//mojo/services/test_service:test_request_tracker_app",
]
if (is_android) {
deps += [
# TODO(GYP):
#'../testing/android/native_test.gyp:native_test_native_code',
]
}
}
# GYP version: mojo/mojo.gyp:mojo_shell_test_support
source_set("test_support") {
sources = [
"shell_test_helper.cc",
"shell_test_helper.h",
]
deps = [
":lib",
"//mojo/edk/system",
]
}
test("external_application_unittests") {
sources = [
"incoming_connection_listener_unittest.cc",
"external_application_listener_unittest.cc",
"external_application_test_main.cc",
]
deps = [
":lib",
":external_application_registrar_connection",
"//base",
"//base/test:test_support",
"//testing/gtest",
"//url",
"//mojo/application_manager",
"//mojo/common",
"//mojo/edk/system",
"//mojo/environment:chromium",
"//mojo/shell/domain_socket:tests",
]
if (is_win) {
sources -= [
"incoming_connection_listener_unittest.cc",
"external_application_listener_unittest.cc",
]
deps -= [
":lib",
":external_application_registrar_connection",
"//url",
"//mojo/application_manager",
"//mojo/common",
"//mojo/edk/system",
"//mojo/environment:chromium",
"//mojo/shell/domain_socket:tests",
]
}
}