BUILD.gn 3.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# Copyright 2016 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.

import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")

generate_jni("jni_headers") {
  visibility = [ ":*" ]

  sources = [
    "io/flutter/view/FlutterMain.java",
    "io/flutter/view/FlutterView.java",
  ]
  jni_package = "shell"
}

shared_library("sky_shell") {
  visibility = [ ":*" ]

  sources = [
22 23 24 25 26 27 28 29
    "android_context_gl.cc",
    "android_context_gl.h",
    "android_environment_gl.cc",
    "android_environment_gl.h",
    "android_native_window.cc",
    "android_native_window.h",
    "android_surface_gl.cc",
    "android_surface_gl.h",
30 31 32 33 34 35 36 37 38 39 40 41 42
    "flutter_main.cc",
    "flutter_main.h",
    "library_loader.cc",
    "platform_view_android.cc",
    "platform_view_android.h",
  ]

  deps = [
    "//base",
    "//dart/runtime:libdart",
    "//flutter/common",
    "//flutter/flow",
    "//flutter/lib/jni",
43
    "//flutter/lib/ui",
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
    "//flutter/runtime",
    "//flutter/shell/common",
    "//flutter/shell/gpu",
    "//flutter/skia",
    "//flutter/vulkan",
    "//lib/ftl",
    "//mojo/android:libsystem_java",
    "//mojo/edk/base_edk",
    "//mojo/edk/system",
    ":jni_headers",
  ]

  ldflags = [
    "-landroid",
    "-lEGL",
    "-lGLESv2",
  ]
}

android_library("java") {
  visibility = [ ":*" ]

  java_files = [
A
Adam Barth 已提交
67
    "io/flutter/plugin/common/ActivityLifecycleListener.java",
A
Adam Barth 已提交
68 69
    "io/flutter/plugin/common/JSONMessageListener.java",
    "io/flutter/plugin/platform/PlatformPlugin.java",
70 71 72 73 74
    "io/flutter/view/AccessibilityBridge.java",
    "io/flutter/view/FlutterMain.java",
    "io/flutter/view/FlutterView.java",
    "io/flutter/view/ResourceCleaner.java",
    "io/flutter/view/ResourceExtractor.java",
A
Adam Barth 已提交
75
    "io/flutter/view/ResourcePaths.java",
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
    "io/flutter/view/ServiceFactory.java",
    "io/flutter/view/ServiceProviderImpl.java",
    "io/flutter/view/ServiceRegistry.java",
    "org/domokit/sky/shell/SkyActivity.java",
    "org/domokit/sky/shell/SkyApplication.java",
  ]

  deps = [
    "//base:base_java",
    "//flutter/services/editing:editing_lib",
    "//flutter/services/editing:interfaces_java",
    "//flutter/services/engine:interfaces_java",
    "//flutter/services/platform:interfaces_java",
    "//flutter/services/raw_keyboard:interfaces_java",
    "//flutter/services/raw_keyboard:raw_keyboard_lib",
    "//flutter/services/vsync:vsync_lib",
    "//mojo/android:system_java",
    "//mojo/public/interfaces/application:application_java",
    "//mojo/public/java:bindings",
    "//mojo/public/java:system",
    "//mojo/services/vsync/interfaces:interfaces_java",
  ]
}

copy_ex("assets") {
  visibility = [ ":*" ]

  clear_dir = true
  dest = "$root_build_dir/sky_shell/assets"
  sources = [
    "$root_build_dir/icudtl.dat",
  ]
  deps = [
    "//third_party/icu:icudata",
  ]
}

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

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

  extensions_to_not_compress = ".flx"

  flutter_dist_jar = "$root_build_dir/flutter.jar"

  deps = [
    "//base:base_java",
    ":assets",
    ":java",
    ":sky_shell",
  ]
}