blob: 196b28d8788d4fbbc0482af70e034668a83ed258 [file] [log] [blame]
# 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/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",
]
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/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",
"//sky/services/media",
]
}
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_linux.cc",
"linux/platform_service_provider_linux.cc",
"linux/platform_view_linux.cc",
] + testing_sources
deps = common_deps + [
":common",
"//mojo/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_sources
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")
}