BUILD.gn 7.6 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 10 11 12 13
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",
14
  "//mojo/services/asset_bundle/public/interfaces",
A
Adam Barth 已提交
15
  "//mojo/services/keyboard/public/interfaces",
16 17
  "//mojo/services/navigation/public/interfaces",
  "//mojo/services/network/public/interfaces",
18
  "//services/asset_bundle:lib",
19 20 21
  "//skia",
  "//sky/engine",
  "//sky/engine/tonic",
22
  "//sky/engine/wtf",
A
Adam Barth 已提交
23
  "//sky/services/engine:interfaces",
24
  "//sky/services/vsync:interfaces",
25
  "//sky/shell/dart",
26 27 28
  "//ui/gfx/geometry",
  "//ui/gl",
]
29

30 31 32 33 34 35 36
testing_sources = [
  "testing/test_runner.cc",
  "testing/test_runner.h",
  "testing/testing.cc",
  "testing/testing.h",
]

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

  deps = common_deps
}

78 79 80
if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
81

82 83 84 85 86 87 88 89 90
  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"
  }
91

92 93 94 95 96 97 98 99 100 101 102 103
  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",
    ]
104

105 106 107
    deps = common_deps + [
             "//mojo/android:libsystem_java",
             ":jni_headers",
108
             ":common",
109
           ]
110 111 112 113
    ldflags = [
      "-lGLESv2",
      "-lEGL",
    ]
114
  }
115

116 117 118 119 120
  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",
121
      "android/org/domokit/sky/shell/ResourceCleaner.java",
122
      "android/org/domokit/sky/shell/ResourceExtractor.java",
123 124 125 126 127 128 129
      "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",
    ]
130

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

  copy_ex("assets") {
    clear_dir = true
    dest = "$root_build_dir/sky_shell/assets"
    sources = [
      "$root_build_dir/icudtl.dat",
    ]
    deps = [
160
      "//third_party/icu:icudata",
161 162
    ]
  }
A
Adam Barth 已提交
163 164 165 166 167 168 169 170

  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 已提交
171 172
    extensions_to_not_compress = ".skyx"

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

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

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

    sources = [
235
      "linux/main_linux.cc",
A
Adam Barth 已提交
236 237
      "linux/platform_service_provider_linux.cc",
      "linux/platform_view_linux.cc",
238
    ] + testing_sources
A
Adam Barth 已提交
239

240
    deps = common_deps + [
241 242 243
             ":common",
             "//sky/services/testing:interfaces",
           ]
244 245 246 247
  }
} else if (is_mac) {
  import("//build/config/mac/rules.gni")

248 249 250 251 252 253 254 255 256 257 258 259 260 261
  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",
262
    ] + testing_sources
263 264 265 266 267 268 269 270

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

271
  mac_app("shell") {
E
Eric Seidel 已提交
272
    app_name = "SkyShell"
273 274 275 276 277
    info_plist = "mac/Info.plist"

    # entitlements_path = ""
    # code_signing_identity = ""

278
    xibs = [ "mac/sky_mac.xib" ]
279 280

    resource_copy_mac("sky_resources") {
281 282 283 284
      resources = [
        "//third_party/icu/android/icudtl.dat",
        "ios/LaunchScreen.storyboardc"
      ]
285 286 287 288
      bundle_directory = "."
    }

    deps = [
289
      ":mac_scaffolding",
290 291
      ":sky_resources",
    ]
A
Adam Barth 已提交
292
  }
293 294
} else {
  assert(false, "Unsupported platform")
A
Adam Barth 已提交
295
}