# 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/common", "//mojo/edk/system", "//mojo/public/cpp/application", "//mojo/public/interfaces/application", "//mojo/services/asset_bundle/public/interfaces", "//mojo/services/keyboard/public/interfaces", "//mojo/services/navigation/public/interfaces", "//mojo/services/network/public/interfaces", "//services/asset_bundle:lib", "//skia", "//sky/engine", "//sky/engine/tonic", "//sky/engine/wtf", "//sky/services/engine:interfaces", "//sky/services/vsync:interfaces", "//sky/shell/dart", "//ui/gfx/geometry", "//ui/gl", ] source_set("common") { sources = [ "gpu/ganesh_context.cc", "gpu/ganesh_context.h", "gpu/ganesh_surface.cc", "gpu/ganesh_surface.h", "gpu/picture_serializer.cc", "gpu/picture_serializer.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", ] 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", ] deps = common_deps + [ "//mojo/android:libsystem_java", ":jni_headers", ":common", ] ldflags = [ "-lGLESv2", "-lEGL", ] } android_library("java") { java_files = [ "android/org/domokit/sky/shell/GestureProvider.java", "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", ] 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/public/interfaces:interfaces_java", "//mojo/services/network/public/interfaces:interfaces_java", "//mojo/services/sensors/public/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/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 = ".skyx" 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") source_set("ios_scaffolding") { sources = [ "ios/document_watcher.m", "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/ns_net", "//sky/services/keyboard", ] } ios_app("shell") { app_name = "SkyShell" info_plist = "ios/Info.plist" entitlements_path = "ios/Entitlements.xcent" code_signing_identity = ios_code_signing_identity resource_copy_ios("sky_resources") { resources = [ "//third_party/icu/android/icudtl.dat" ] bundle_directory = "." } deps = [ ":ios_scaffolding", ":sky_resources", ] } } else if (is_linux) { executable("shell") { output_name = "sky_shell" sources = [ "linux/main.cc", "linux/platform_service_provider_linux.cc", "linux/platform_view_linux.cc", "testing/test_runner.cc", "testing/test_runner.h", ] deps = common_deps + [ ":common", "//sky/services/testing:interfaces", ] } } 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/test_runner.cc", "testing/test_runner.h", ] deps = common_deps + [ ":common", "//sky/services/ns_net", "//sky/services/testing:interfaces", ] } mac_app("shell") { app_name = "SkyShell" info_plist = "mac/Info.plist" # entitlements_path = "" # code_signing_identity = "" 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") }