mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
273 lines
8.4 KiB
Plaintext
273 lines
8.4 KiB
Plaintext
# Copyright 2013 The Flutter 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")
|
|
import("$flutter_root/shell/gpu/gpu.gni")
|
|
|
|
shell_gpu_configuration("android_gpu_configuration") {
|
|
enable_software = true
|
|
enable_vulkan = shell_enable_vulkan
|
|
enable_gl = true
|
|
}
|
|
|
|
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",
|
|
"$root_build_dir/flutter_icu/icudtl.o",
|
|
]
|
|
|
|
deps = [
|
|
":android_gpu_configuration",
|
|
":icudtl_object",
|
|
"$flutter_root/assets",
|
|
"$flutter_root/common",
|
|
"$flutter_root/flow",
|
|
"$flutter_root/fml",
|
|
"$flutter_root/lib/ui",
|
|
"$flutter_root/runtime",
|
|
"$flutter_root/shell/common",
|
|
"//third_party/skia",
|
|
]
|
|
if (flutter_runtime_mode == "debug" ||
|
|
flutter_runtime_mode == "dynamic_profile" ||
|
|
flutter_runtime_mode == "dynamic_release") {
|
|
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",
|
|
]
|
|
|
|
ldflags = ["-Wl,--version-script=" + rebase_path("android_exports.lst")]
|
|
}
|
|
|
|
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/embedding/engine/FlutterEngine.java",
|
|
"io/flutter/embedding/engine/FlutterJNI.java",
|
|
"io/flutter/embedding/engine/android/AndroidKeyProcessor.java",
|
|
"io/flutter/embedding/engine/dart/DartExecutor.java",
|
|
"io/flutter/embedding/engine/dart/DartMessenger.java",
|
|
"io/flutter/embedding/engine/dart/PlatformMessageHandler.java",
|
|
"io/flutter/embedding/engine/renderer/FlutterRenderer.java",
|
|
"io/flutter/embedding/engine/renderer/OnFirstFrameRenderedListener.java",
|
|
"io/flutter/embedding/engine/systemchannels/AccessibilityChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/KeyEventChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/LifecycleChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/LocalizationChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/NavigationChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/PlatformChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/SettingsChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/SystemChannel.java",
|
|
"io/flutter/embedding/engine/systemchannels/TextInputChannel.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/ErrorLogResult.java",
|
|
"io/flutter/plugin/common/EventChannel.java",
|
|
"io/flutter/plugin/common/FlutterException.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/plugin/platform/PlatformView.java",
|
|
"io/flutter/plugin/platform/PlatformViewFactory.java",
|
|
"io/flutter/plugin/platform/PlatformViewRegistry.java",
|
|
"io/flutter/plugin/platform/PlatformViewRegistryImpl.java",
|
|
"io/flutter/plugin/platform/PlatformViewsController.java",
|
|
"io/flutter/plugin/platform/SingleViewPresentation.java",
|
|
"io/flutter/plugin/platform/VirtualDisplayController.java",
|
|
"io/flutter/util/PathUtils.java",
|
|
"io/flutter/util/Preconditions.java",
|
|
"io/flutter/util/Predicate.java",
|
|
"io/flutter/view/AccessibilityBridge.java",
|
|
"io/flutter/view/FlutterCallbackInformation.java",
|
|
"io/flutter/view/FlutterMain.java",
|
|
"io/flutter/view/FlutterNativeView.java",
|
|
"io/flutter/view/FlutterRunArguments.java",
|
|
"io/flutter/view/FlutterView.java",
|
|
"io/flutter/view/ResourceCleaner.java",
|
|
"io/flutter/view/ResourceExtractor.java",
|
|
"io/flutter/view/ResourcePaths.java",
|
|
"io/flutter/view/ResourceUpdater.java",
|
|
"io/flutter/view/TextureRegistry.java",
|
|
"io/flutter/view/VsyncWaiter.java",
|
|
]
|
|
|
|
java_files += [
|
|
"$flutter_root/third_party/bsdiff/io/flutter/util/BSDiff.java",
|
|
]
|
|
|
|
deps = [
|
|
":android_support_v13",
|
|
":android_support_annotations",
|
|
":android_support_compat",
|
|
":android_support_fragment",
|
|
":android_arch_lifecycle_common",
|
|
":android_arch_lifecycle_viewmodel",
|
|
]
|
|
|
|
jar_path = "$root_out_dir/flutter_java.jar"
|
|
}
|
|
|
|
java_prebuilt("android_support_v13") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_support_v13.jar"
|
|
}
|
|
|
|
java_prebuilt("android_support_compat") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_support_compat.jar"
|
|
}
|
|
|
|
java_prebuilt("android_support_annotations") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_support_annotations.jar"
|
|
}
|
|
|
|
java_prebuilt("android_support_fragment") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_support_fragment.jar"
|
|
}
|
|
|
|
java_prebuilt("android_arch_lifecycle_common") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_arch_lifecycle_common.jar"
|
|
}
|
|
|
|
java_prebuilt("android_arch_lifecycle_viewmodel") {
|
|
supports_android = true
|
|
|
|
jar_path = "//third_party/android_support/android_arch_lifecycle_viewmodel.jar"
|
|
}
|
|
|
|
action("icudtl_object") {
|
|
script = "$flutter_root/sky/tools/objcopy.py"
|
|
|
|
icudtl_input = "//third_party/icu/flutter/icudtl.dat"
|
|
icudtl_output = "$root_build_dir/flutter_icu/icudtl.o"
|
|
|
|
inputs = [
|
|
"$icudtl_input",
|
|
]
|
|
|
|
outputs = [
|
|
"$icudtl_output",
|
|
]
|
|
|
|
args = [
|
|
"--objcopy", rebase_path(android_objcopy),
|
|
"--input", rebase_path(icudtl_input),
|
|
"--output", rebase_path(icudtl_output),
|
|
"--arch", current_cpu,
|
|
]
|
|
}
|
|
|
|
action("android") {
|
|
script = "//build/android/gyp/create_flutter_jar.py"
|
|
|
|
inputs = [
|
|
"$root_build_dir/flutter_java.jar",
|
|
"$root_build_dir/lib.stripped/libflutter.so",
|
|
]
|
|
|
|
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),
|
|
"--native_lib",
|
|
rebase_path("lib.stripped/libflutter.so", root_build_dir, root_build_dir),
|
|
"--android_abi",
|
|
"$android_app_abi",
|
|
]
|
|
|
|
deps = [
|
|
":flutter_shell_java",
|
|
":flutter_shell_native",
|
|
]
|
|
}
|