| # 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", |
| ] |
| } |
| } |