blob: 5de1308f408ba8cfc3fdc156639f2360719ecb61 [file] [log] [blame]
# 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("$flutter_root/common/config.gni")
import("$flutter_root/shell/config.gni")
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
shared_library("flutter_shell_native") {
visibility = [ ":*" ]
output_name = "flutter"
sources = [
"android_context_gl.cc",
"android_context_gl.h",
"android_environment_gl.cc",
"android_environment_gl.h",
"android_external_texture_gl.h",
"android_external_texture_gl.cc",
"android_native_window.cc",
"android_native_window.h",
"android_surface.cc",
"android_surface.h",
"android_surface_gl.cc",
"android_surface_gl.h",
"android_surface_software.h",
"android_surface_software.cc",
"flutter_main.cc",
"flutter_main.h",
"library_loader.cc",
"platform_view_android.cc",
"platform_view_android.h",
"platform_view_android_jni.cc",
"platform_view_android_jni.h",
"vsync_waiter_android.cc",
"vsync_waiter_android.h",
]
deps = [
"$flutter_root/common",
"$flutter_root/flow",
"$flutter_root/fml",
"$flutter_root/lib/ui",
"$flutter_root/runtime",
"$flutter_root/shell/common",
"$flutter_root/shell/gpu",
"//garnet/public/lib/fxl",
"//third_party/skia",
"//third_party/skia:gpu",
]
if (flutter_runtime_mode == "debug") {
deps += [ "//third_party/dart/runtime:libdart_jit" ]
} else {
deps += [ "//third_party/dart/runtime:libdart_precompiled_runtime" ]
}
public_configs = [
"$flutter_root:config",
]
defines = []
if (shell_enable_vulkan) {
sources += [
"android_surface_vulkan.cc",
"android_surface_vulkan.h",
]
deps += [ "$flutter_root/vulkan" ]
defines += [ "SHELL_ENABLE_VULKAN" ]
}
libs = [
"android",
"EGL",
"GLESv2",
]
}
java_library("flutter_shell_java") {
supports_android = true
java_files = [
"io/flutter/app/FlutterActivity.java",
"io/flutter/app/FlutterActivityDelegate.java",
"io/flutter/app/FlutterActivityEvents.java",
"io/flutter/app/FlutterApplication.java",
"io/flutter/app/FlutterFragmentActivity.java",
"io/flutter/app/FlutterPluginRegistry.java",
"io/flutter/plugin/common/ActivityLifecycleListener.java",
"io/flutter/plugin/common/BasicMessageChannel.java",
"io/flutter/plugin/common/BinaryCodec.java",
"io/flutter/plugin/common/BinaryMessenger.java",
"io/flutter/plugin/common/FlutterException.java",
"io/flutter/plugin/common/EventChannel.java",
"io/flutter/plugin/common/JSONMessageCodec.java",
"io/flutter/plugin/common/JSONMethodCodec.java",
"io/flutter/plugin/common/JSONUtil.java",
"io/flutter/plugin/common/MessageCodec.java",
"io/flutter/plugin/common/MethodCall.java",
"io/flutter/plugin/common/MethodChannel.java",
"io/flutter/plugin/common/MethodCodec.java",
"io/flutter/plugin/common/PluginRegistry.java",
"io/flutter/plugin/common/StandardMessageCodec.java",
"io/flutter/plugin/common/StandardMethodCodec.java",
"io/flutter/plugin/common/StringCodec.java",
"io/flutter/plugin/editing/InputConnectionAdaptor.java",
"io/flutter/plugin/editing/TextInputPlugin.java",
"io/flutter/plugin/platform/PlatformPlugin.java",
"io/flutter/util/PathUtils.java",
"io/flutter/util/Preconditions.java",
"io/flutter/view/AccessibilityBridge.java",
"io/flutter/view/FlutterMain.java",
"io/flutter/view/FlutterNativeView.java",
"io/flutter/view/FlutterView.java",
"io/flutter/view/ResourceCleaner.java",
"io/flutter/view/ResourceExtractor.java",
"io/flutter/view/ResourcePaths.java",
"io/flutter/view/TextureRegistry.java",
"io/flutter/view/VsyncWaiter.java",
]
deps = [
":android_support_v4",
]
jar_path = "$root_out_dir/flutter_java.jar"
}
java_prebuilt("android_support_v4") {
supports_android = true
jar_path = "//third_party/android_tools/sdk/extras/android/support/v4/android-support-v4.jar"
}
copy("flutter_shell_assets") {
visibility = [ ":*" ]
sources = [
"//third_party/icu/android/icudtl.dat",
]
outputs = [
"$root_build_dir/flutter_shell_assets/{{source_file_part}}",
]
deps = [
"//third_party/icu:icudata",
]
}
action("android") {
script = "//build/android/gyp/create_flutter_jar.py"
inputs = [
"$root_build_dir/flutter_java.jar",
"$root_build_dir/lib.stripped/libflutter.so",
"$root_build_dir/flutter_shell_assets/icudtl.dat",
]
outputs = [
"$root_build_dir/flutter.jar",
]
args = [
"--output",
rebase_path("flutter.jar", root_build_dir, root_build_dir),
"--dist_jar",
rebase_path("flutter_java.jar", root_build_dir, root_build_dir),
"--asset_dir",
rebase_path("flutter_shell_assets", root_build_dir, root_build_dir),
"--native_lib",
rebase_path("lib.stripped/libflutter.so", root_build_dir, root_build_dir),
"--android_abi",
"$android_app_abi",
]
deps = [
":flutter_shell_assets",
":flutter_shell_java",
":flutter_shell_native",
]
}