BUILD.gn 7.8 KB
Newer Older
1 2 3 4
# 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.

5 6 7 8 9
common_deps = [
  "//base",
  "//base:i18n",
  "//build/config/sanitizers:deps",
  "//dart/runtime:libdart",
10
  "//mojo/data_pipe_utils",
11
  "//mojo/edk/system",
12
  "//mojo/message_pump",
13 14
  "//mojo/public/cpp/application",
  "//mojo/public/interfaces/application",
15
  "//mojo/services/asset_bundle/public/interfaces",
A
Adam Barth 已提交
16
  "//mojo/services/keyboard/public/interfaces",
17 18
  "//mojo/services/navigation/public/interfaces",
  "//mojo/services/network/public/interfaces",
19
  "//services/asset_bundle:lib",
20 21 22
  "//skia",
  "//sky/engine",
  "//sky/engine/tonic",
23
  "//sky/engine/wtf",
A
Adam Barth 已提交
24
  "//sky/services/engine:interfaces",
25
  "//sky/services/vsync:interfaces",
26
  "//sky/shell/dart",
27 28 29
  "//ui/gfx/geometry",
  "//ui/gl",
]
30

A
Adam Barth 已提交
31 32 33 34 35 36 37 38 39 40
if (is_linux || is_mac) {

  testing_sources = [
    "testing/test_runner.cc",
    "testing/test_runner.h",
    "testing/testing.cc",
    "testing/testing.h",
  ]

}
41

42 43 44 45 46 47
source_set("common") {
  sources = [
    "gpu/ganesh_context.cc",
    "gpu/ganesh_context.h",
    "gpu/ganesh_surface.cc",
    "gpu/ganesh_surface.h",
48 49
    "gpu/picture_serializer.cc",
    "gpu/picture_serializer.h",
50 51 52 53 54 55
    "gpu/rasterizer.cc",
    "gpu/rasterizer.h",
    "gpu_delegate.cc",
    "gpu_delegate.h",
    "platform_view.cc",
    "platform_view.h",
A
Adam Barth 已提交
56
    "service_provider.cc",
57 58 59 60 61
    "service_provider.h",
    "shell.cc",
    "shell.h",
    "shell_view.cc",
    "shell_view.h",
62 63
    "switches.cc",
    "switches.h",
64 65
    "tracing_controller.cc",
    "tracing_controller.h",
66 67 68 69 70 71 72 73
    "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",
A
Adam Barth 已提交
74 75
    "ui/platform_impl.cc",
    "ui/platform_impl.h",
76 77 78 79 80 81 82
    "ui_delegate.cc",
    "ui_delegate.h",
  ]

  deps = common_deps
}

83 84 85
if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
86

87 88 89 90 91 92 93 94 95
  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"
  }
96

97 98 99 100 101 102 103 104 105 106 107 108
  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",
    ]
109

110 111 112
    deps = common_deps + [
             "//mojo/android:libsystem_java",
             ":jni_headers",
113
             ":common",
114
           ]
115 116 117 118
    ldflags = [
      "-lGLESv2",
      "-lEGL",
    ]
119
  }
120

121 122 123 124 125
  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",
126
      "android/org/domokit/sky/shell/ResourceCleaner.java",
127
      "android/org/domokit/sky/shell/ResourceExtractor.java",
128 129 130 131 132 133 134
      "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",
    ]
135

136 137 138 139 140 141
    deps = [
      "//base:base_java",
      "//mojo/android:system_java",
      "//mojo/public/interfaces/application:application_java",
      "//mojo/public/java:bindings",
      "//mojo/public/java:system",
142
      "//mojo/services/keyboard/public/interfaces:interfaces_java",
143
      "//mojo/services/network/public/interfaces:interfaces_java",
A
Adam Barth 已提交
144
      "//mojo/services/sensors/public/interfaces:interfaces_java",
145
      "//services/keyboard",
A
Adam Barth 已提交
146
      "//services/sensors:sensors_lib",
147 148
      "//sky/services/activity:activity_lib",
      "//sky/services/activity:interfaces_java",
A
Adam Barth 已提交
149
      "//sky/services/engine:interfaces_java",
A
Adam Barth 已提交
150 151
      "//sky/services/media:interfaces_java",
      "//sky/services/media:media_lib",
152
      "//sky/services/oknet",
153 154
      "//sky/services/vsync:interfaces_java",
      "//sky/services/vsync:vsync_lib",
155 156 157 158 159 160 161 162 163 164
    ]
  }

  copy_ex("assets") {
    clear_dir = true
    dest = "$root_build_dir/sky_shell/assets"
    sources = [
      "$root_build_dir/icudtl.dat",
    ]
    deps = [
165
      "//third_party/icu:icudata",
166 167
    ]
  }
A
Adam Barth 已提交
168 169 170 171 172 173 174 175

  android_apk("shell") {
    apk_name = "SkyShell"
    android_manifest = "android/AndroidManifest.xml"

    native_libs = [ "libsky_shell.so" ]
    asset_location = "$root_build_dir/sky_shell/assets"

A
Adam Barth 已提交
176 177
    extensions_to_not_compress = ".skyx"

A
Adam Barth 已提交
178 179 180 181 182 183 184 185
    deps = [
      ":assets",
      ":assets",
      ":java",
      ":sky_shell",
      "//base:base_java",
    ]
  }
186 187 188 189
} else if (is_ios) {
  import("//build/config/ios/rules.gni")
  import("//build/config/ios/ios_sdk.gni")

190 191
  source_set("ios_scaffolding") {
    sources = [
192
      "ios/document_watcher.m",
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
      "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",
215
             "//sky/services/keyboard",
216
             "//sky/services/media",
217 218 219
           ]
  }

220
  ios_app("shell") {
E
Eric Seidel 已提交
221
    app_name = "SkyShell"
222 223 224 225 226 227 228 229 230 231
    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 = [
232
      ":ios_scaffolding",
233 234 235
      ":sky_resources",
    ]
  }
A
Adam Barth 已提交
236 237 238 239 240
} else if (is_linux) {
  executable("shell") {
    output_name = "sky_shell"

    sources = [
241
      "linux/main_linux.cc",
A
Adam Barth 已提交
242 243
      "linux/platform_service_provider_linux.cc",
      "linux/platform_view_linux.cc",
244
    ] + testing_sources
A
Adam Barth 已提交
245

246
    deps = common_deps + [
247
             ":common",
248
             "//mojo/common",
249 250
             "//sky/services/testing:interfaces",
           ]
251 252 253 254
  }
} else if (is_mac) {
  import("//build/config/mac/rules.gni")

255 256 257 258 259 260 261 262 263 264 265 266 267 268
  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",
269
    ] + testing_sources
270 271 272 273 274 275 276 277

    deps = common_deps + [
             ":common",
             "//sky/services/ns_net",
             "//sky/services/testing:interfaces",
           ]
  }

278
  mac_app("shell") {
E
Eric Seidel 已提交
279
    app_name = "SkyShell"
280 281 282 283 284
    info_plist = "mac/Info.plist"

    # entitlements_path = ""
    # code_signing_identity = ""

285
    xibs = [ "mac/sky_mac.xib" ]
286 287

    resource_copy_mac("sky_resources") {
288 289 290 291
      resources = [
        "//third_party/icu/android/icudtl.dat",
        "ios/LaunchScreen.storyboardc"
      ]
292 293 294 295
      bundle_directory = "."
    }

    deps = [
296
      ":mac_scaffolding",
297 298
      ":sky_resources",
    ]
A
Adam Barth 已提交
299
  }
300 301
} else {
  assert(false, "Unsupported platform")
A
Adam Barth 已提交
302
}