# 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.cc", "android_external_texture_gl.h", "android_native_window.cc", "android_native_window.h", "android_shell_holder.cc", "android_shell_holder.h", "android_surface.cc", "android_surface.h", "android_surface_gl.cc", "android_surface_gl.h", "android_surface_software.cc", "android_surface_software.h", "apk_asset_provider.cc", "apk_asset_provider.h", "flutter_main.cc", "flutter_main.h", "library_loader.cc", "platform_message_response_android.cc", "platform_message_response_android.h", "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/assets", "$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", ] }