|  | # 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. | 
|  |  | 
|  | common_deps = [ | 
|  | "//base", | 
|  | "//base:i18n", | 
|  | "//build/config/sanitizers:deps", | 
|  | "//dart/runtime:libdart", | 
|  | "//mojo/data_pipe_utils", | 
|  | "//mojo/edk/system", | 
|  | "//mojo/message_pump", | 
|  | "//mojo/public/cpp/application", | 
|  | "//mojo/public/interfaces/application", | 
|  | "//mojo/services/asset_bundle/interfaces", | 
|  | "//mojo/services/keyboard/interfaces", | 
|  | "//mojo/services/navigation/interfaces", | 
|  | "//mojo/services/network/interfaces", | 
|  | "//services/asset_bundle:lib", | 
|  | "//skia", | 
|  | "//sky/compositor", | 
|  | "//sky/engine", | 
|  | "//sky/engine/tonic", | 
|  | "//sky/engine/wtf", | 
|  | "//sky/services/engine:interfaces", | 
|  | "//sky/services/vsync:interfaces", | 
|  | "//sky/shell/dart", | 
|  | "//ui/gfx/geometry", | 
|  | "//ui/gl", | 
|  | "//url:url", | 
|  | ] | 
|  |  | 
|  | if (is_linux || is_mac) { | 
|  |  | 
|  | testing_sources = [ | 
|  | "testing/test_runner.cc", | 
|  | "testing/test_runner.h", | 
|  | "testing/testing.cc", | 
|  | "testing/testing.h", | 
|  | ] | 
|  |  | 
|  | } | 
|  |  | 
|  | source_set("common") { | 
|  | sources = [ | 
|  | "gpu/ganesh_context.cc", | 
|  | "gpu/ganesh_context.h", | 
|  | "gpu/ganesh_surface.cc", | 
|  | "gpu/ganesh_surface.h", | 
|  | "gpu/rasterizer.cc", | 
|  | "gpu/rasterizer.h", | 
|  | "gpu_delegate.cc", | 
|  | "gpu_delegate.h", | 
|  | "platform_view.cc", | 
|  | "platform_view.h", | 
|  | "service_provider.cc", | 
|  | "service_provider.h", | 
|  | "shell.cc", | 
|  | "shell.h", | 
|  | "shell_view.cc", | 
|  | "shell_view.h", | 
|  | "switches.cc", | 
|  | "switches.h", | 
|  | "tracing_controller.cc", | 
|  | "tracing_controller.h", | 
|  | "ui/animator.cc", | 
|  | "ui/animator.h", | 
|  | "ui/engine.cc", | 
|  | "ui/engine.h", | 
|  | "ui/input_event_converter.cc", | 
|  | "ui/input_event_converter.h", | 
|  | "ui/internals.cc", | 
|  | "ui/internals.h", | 
|  | "ui/platform_impl.cc", | 
|  | "ui/platform_impl.h", | 
|  | "ui_delegate.cc", | 
|  | "ui_delegate.h", | 
|  | ] | 
|  |  | 
|  | deps = common_deps | 
|  | } | 
|  |  | 
|  | if (is_android) { | 
|  | import("//build/config/android/config.gni") | 
|  | import("//build/config/android/rules.gni") | 
|  |  | 
|  | generate_jni("jni_headers") { | 
|  | sources = [ | 
|  | "android/org/domokit/sky/shell/PlatformServiceProvider.java", | 
|  | "android/org/domokit/sky/shell/PlatformViewAndroid.java", | 
|  | "android/org/domokit/sky/shell/SkyMain.java", | 
|  | "android/org/domokit/sky/shell/TracingController.java", | 
|  | "android/org/domokit/sky/shell/UpdateService.java", | 
|  | ] | 
|  | jni_package = "sky/shell" | 
|  | } | 
|  |  | 
|  | shared_library("sky_shell") { | 
|  | sources = [ | 
|  | "android/library_loader.cc", | 
|  | "android/platform_service_provider_android.cc", | 
|  | "android/platform_service_provider_android.h", | 
|  | "android/platform_view_android.cc", | 
|  | "android/platform_view_android.h", | 
|  | "android/sky_main.cc", | 
|  | "android/sky_main.h", | 
|  | "android/tracing_controller.cc", | 
|  | "android/tracing_controller.h", | 
|  | "android/update_service_android.cc", | 
|  | ] | 
|  |  | 
|  | deps = common_deps + [ | 
|  | "//mojo/android:libsystem_java", | 
|  | ":jni_headers", | 
|  | ":common", | 
|  | ] | 
|  | ldflags = [ | 
|  | "-lGLESv2", | 
|  | "-lEGL", | 
|  | ] | 
|  | } | 
|  |  | 
|  | android_library("java") { | 
|  | java_files = [ | 
|  | "android/org/domokit/sky/shell/PlatformServiceProvider.java", | 
|  | "android/org/domokit/sky/shell/PlatformViewAndroid.java", | 
|  | "android/org/domokit/sky/shell/ResourceCleaner.java", | 
|  | "android/org/domokit/sky/shell/ResourceExtractor.java", | 
|  | "android/org/domokit/sky/shell/ServiceFactory.java", | 
|  | "android/org/domokit/sky/shell/ServiceRegistry.java", | 
|  | "android/org/domokit/sky/shell/SkyActivity.java", | 
|  | "android/org/domokit/sky/shell/SkyApplication.java", | 
|  | "android/org/domokit/sky/shell/SkyMain.java", | 
|  | "android/org/domokit/sky/shell/TracingController.java", | 
|  | "android/org/domokit/sky/shell/UpdateService.java", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "//base:base_java", | 
|  | "//mojo/android:system_java", | 
|  | "//mojo/public/interfaces/application:application_java", | 
|  | "//mojo/public/java:bindings", | 
|  | "//mojo/public/java:system", | 
|  | "//mojo/services/keyboard/interfaces:interfaces_java", | 
|  | "//mojo/services/network/interfaces:interfaces_java", | 
|  | "//mojo/services/sensors/interfaces:interfaces_java", | 
|  | "//services/keyboard", | 
|  | "//services/sensors:sensors_lib", | 
|  | "//sky/services/activity:activity_lib", | 
|  | "//sky/services/activity:interfaces_java", | 
|  | "//sky/services/engine:interfaces_java", | 
|  | "//sky/services/media:interfaces_java", | 
|  | "//sky/services/media:media_lib", | 
|  | "//sky/services/oknet", | 
|  | "//sky/services/updater:interfaces_java", | 
|  | "//sky/services/vsync:interfaces_java", | 
|  | "//sky/services/vsync:vsync_lib", | 
|  | ] | 
|  | } | 
|  |  | 
|  | copy_ex("assets") { | 
|  | clear_dir = true | 
|  | dest = "$root_build_dir/sky_shell/assets" | 
|  | sources = [ | 
|  | "$root_build_dir/icudtl.dat", | 
|  | ] | 
|  | deps = [ | 
|  | "//third_party/icu:icudata", | 
|  | ] | 
|  | } | 
|  |  | 
|  | android_apk("shell") { | 
|  | apk_name = "SkyShell" | 
|  | android_manifest = "android/AndroidManifest.xml" | 
|  |  | 
|  | native_libs = [ "libsky_shell.so" ] | 
|  | asset_location = "$root_build_dir/sky_shell/assets" | 
|  |  | 
|  | extensions_to_not_compress = ".flx" | 
|  |  | 
|  | deps = [ | 
|  | ":assets", | 
|  | ":assets", | 
|  | ":java", | 
|  | ":sky_shell", | 
|  | "//base:base_java", | 
|  | ] | 
|  | } | 
|  | } else if (is_ios) { | 
|  | import("//build/config/ios/rules.gni") | 
|  | import("//build/config/ios/ios_sdk.gni") | 
|  | import("//sky/build/sky_precompilation_sdk.gni") | 
|  |  | 
|  | source_set("ios_scaffolding") { | 
|  | sources = [ | 
|  | "ios/main_ios.mm", | 
|  | "ios/sky_app_delegate.h", | 
|  | "ios/sky_app_delegate.mm", | 
|  | "ios/sky_surface.h", | 
|  | "ios/sky_surface.mm", | 
|  | "ios/sky_view_controller.h", | 
|  | "ios/sky_view_controller.mm", | 
|  | ] | 
|  |  | 
|  | set_sources_assignment_filter([]) | 
|  | sources += [ | 
|  | "mac/platform_mac.h", | 
|  | "mac/platform_mac.mm", | 
|  | "mac/platform_service_provider_mac.cc", | 
|  | "mac/platform_view_mac.h", | 
|  | "mac/platform_view_mac.mm", | 
|  | ] | 
|  | set_sources_assignment_filter(sources_assignment_filter) | 
|  |  | 
|  | deps = common_deps + [ | 
|  | ":common", | 
|  | "//sky/services/keyboard", | 
|  | "//sky/services/media", | 
|  | "//sky/services/ns_net", | 
|  | "//sky/services/vsync", | 
|  | ] | 
|  | } | 
|  |  | 
|  | sky_precompilation_sdk("shell") { | 
|  | sdk_name = "SkySDK" | 
|  | } | 
|  | } else if (is_linux) { | 
|  | executable("shell") { | 
|  | output_name = "sky_shell" | 
|  |  | 
|  | sources = [ | 
|  | "linux/main_linux.cc", | 
|  | "linux/platform_service_provider_linux.cc", | 
|  | "linux/platform_view_linux.cc", | 
|  | ] + testing_sources | 
|  |  | 
|  | deps = common_deps + [ | 
|  | ":common", | 
|  | "//mojo/common", | 
|  | ] | 
|  | } | 
|  | } else if (is_mac) { | 
|  | import("//build/config/mac/rules.gni") | 
|  |  | 
|  | source_set("mac_scaffolding") { | 
|  | sources = [ | 
|  | "mac/main_mac.mm", | 
|  | "mac/platform_mac.h", | 
|  | "mac/platform_mac.mm", | 
|  | "mac/platform_service_provider_mac.cc", | 
|  | "mac/platform_view_mac.h", | 
|  | "mac/platform_view_mac.mm", | 
|  | "mac/sky_app_delegate.h", | 
|  | "mac/sky_app_delegate.m", | 
|  | "mac/sky_application.h", | 
|  | "mac/sky_application.mm", | 
|  | "mac/sky_window.h", | 
|  | "mac/sky_window.mm", | 
|  | ] + testing_sources | 
|  |  | 
|  | deps = common_deps + [ | 
|  | ":common", | 
|  | "//mojo/common", | 
|  | "//sky/services/ns_net", | 
|  | ] | 
|  | } | 
|  |  | 
|  | mac_app("shell") { | 
|  | app_name = "SkyShell" | 
|  | info_plist = "mac/Info.plist" | 
|  |  | 
|  | xibs = [ "mac/sky_mac.xib" ] | 
|  |  | 
|  | resource_copy_mac("sky_resources") { | 
|  | resources = [ | 
|  | "//third_party/icu/android/icudtl.dat", | 
|  | "ios/LaunchScreen.storyboardc" | 
|  | ] | 
|  | bundle_directory = "." | 
|  | } | 
|  |  | 
|  | deps = [ | 
|  | ":mac_scaffolding", | 
|  | ":sky_resources", | 
|  | ] | 
|  | } | 
|  | } else { | 
|  | assert(false, "Unsupported platform") | 
|  | } |