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

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

  deps = common_deps
}

70 71 72
if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
73

74 75 76 77 78 79 80 81 82
  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"
  }
83

84 85 86 87 88 89 90 91 92 93 94 95
  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",
    ]
96

97 98 99
    deps = common_deps + [
             "//mojo/android:libsystem_java",
             ":jni_headers",
100
             ":common",
101
           ]
102 103 104 105
    ldflags = [
      "-lGLESv2",
      "-lEGL",
    ]
106
  }
107

108 109 110 111 112
  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",
113
      "android/org/domokit/sky/shell/ResourceCleaner.java",
114
      "android/org/domokit/sky/shell/ResourceExtractor.java",
115 116 117 118 119 120 121
      "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",
    ]
122

123 124 125 126 127 128
    deps = [
      "//base:base_java",
      "//mojo/android:system_java",
      "//mojo/public/interfaces/application:application_java",
      "//mojo/public/java:bindings",
      "//mojo/public/java:system",
129
      "//mojo/services/keyboard/public/interfaces:interfaces_java",
130
      "//mojo/services/network/public/interfaces:interfaces_java",
A
Adam Barth 已提交
131
      "//mojo/services/sensors/public/interfaces:interfaces_java",
132
      "//services/keyboard",
A
Adam Barth 已提交
133
      "//services/sensors:sensors_lib",
134 135
      "//sky/services/activity:activity_lib",
      "//sky/services/activity:interfaces_java",
A
Adam Barth 已提交
136
      "//sky/services/engine:interfaces_java",
A
Adam Barth 已提交
137 138
      "//sky/services/media:interfaces_java",
      "//sky/services/media:media_lib",
139
      "//sky/services/oknet",
140 141
      "//sky/services/vsync:interfaces_java",
      "//sky/services/vsync:vsync_lib",
142 143 144 145 146 147 148 149 150 151
    ]
  }

  copy_ex("assets") {
    clear_dir = true
    dest = "$root_build_dir/sky_shell/assets"
    sources = [
      "$root_build_dir/icudtl.dat",
    ]
    deps = [
152
      "//third_party/icu:icudata",
153 154
    ]
  }
A
Adam Barth 已提交
155 156 157 158 159 160 161 162

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

A
Adam Barth 已提交
165 166 167 168 169 170 171 172
    deps = [
      ":assets",
      ":assets",
      ":java",
      ":sky_shell",
      "//base:base_java",
    ]
  }
173 174 175 176
} else if (is_ios) {
  import("//build/config/ios/rules.gni")
  import("//build/config/ios/ios_sdk.gni")

177 178
  source_set("ios_scaffolding") {
    sources = [
179
      "ios/document_watcher.m",
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
      "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",
           ]
  }

205
  ios_app("shell") {
E
Eric Seidel 已提交
206
    app_name = "SkyShell"
207 208 209 210 211 212 213 214 215 216
    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 = [
217
      ":ios_scaffolding",
218 219 220
      ":sky_resources",
    ]
  }
A
Adam Barth 已提交
221 222 223 224 225 226 227 228
} 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",
229 230
      "testing/test_runner.cc",
      "testing/test_runner.h",
A
Adam Barth 已提交
231 232
    ]

233
    deps = common_deps + [
234 235 236
             ":common",
             "//sky/services/testing:interfaces",
           ]
237 238 239 240
  }
} else if (is_mac) {
  import("//build/config/mac/rules.gni")

241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
  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",
           ]
  }

266
  mac_app("shell") {
E
Eric Seidel 已提交
267
    app_name = "SkyShell"
268 269 270 271 272
    info_plist = "mac/Info.plist"

    # entitlements_path = ""
    # code_signing_identity = ""

273
    xibs = [ "mac/sky_mac.xib" ]
274 275

    resource_copy_mac("sky_resources") {
276 277 278 279
      resources = [
        "//third_party/icu/android/icudtl.dat",
        "ios/LaunchScreen.storyboardc"
      ]
280 281 282 283
      bundle_directory = "."
    }

    deps = [
284
      ":mac_scaffolding",
285 286
      ":sky_resources",
    ]
A
Adam Barth 已提交
287
  }
288 289
} else {
  assert(false, "Unsupported platform")
A
Adam Barth 已提交
290
}