mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
* Manual roll of Dart from 24c7666def...40fd1c456e dart-lang/sdk@40fd1c456e Revert "[dart:io] Add Abort() on HttpClientRequest" dart-lang/sdk@17d7296a42 [vm/nnbd/bytecode] Fix reuse of type arguments in bytecode dart-lang/sdk@58b6f40c73 Issue 42797. Understand in legacy libraries that a function returning Never (in Null Safety library) never returns. (reland) dart-lang/sdk@fc8a6d9f9b [VM/compiler] Dereference TypeRef literal when propagating constants. dart-lang/sdk@0689ec527a Move "test.dart" (well, most of its contents) into pkg/test_runner. dart-lang/sdk@1094b3c61d Prepare static error test updater tool to handle web tests. dart-lang/sdk@b258585f2f [observatory] Migrate from deprecated isInstanceOf to isA. dart-lang/sdk@dfe1d9b682 Disable OverrideContributor for Cider. dart-lang/sdk@aea99b2f5c scope debug property assist to Diagnosticables dart-lang/sdk@4b96f20a79 [dart:io] Add Abort() on HttpClientRequest dart-lang/sdk@1b1a39708c [build] Use frameworks instead of libs dart-lang/sdk@3fef522496 Revert "Reland "[vm] Replaces fuchsia.deprecatedtimezone"" dart-lang/sdk@8c664d4f3f Revert "Issue 42797. Understand in legacy libraries that a function returning Never (in Null Safety library) never returns." dart-lang/sdk@2efb5bebc7 [ dart:_http ] Fix typo in HTTP response timeline event dart-lang/sdk@0884dae36c Revert "Fix the #include path for ICU headers" dart-lang/sdk@5171534e81 Scope tweaks. Report REFERENCED_BEFORE_DECLARATION in more places. dart-lang/sdk@6bba75079a Issue 42797. Understand in legacy libraries that a function returning Never (in Null Safety library) never returns. dart-lang/sdk@b4ebbb7f5c [build] Update gn to match Fuchsia dart-lang/sdk@cb428a7a02 [dart2js] Remove old bug work around in collector. dart-lang/sdk@08663c20ab Change flutter patch to match existing DEPS on master branch dart-lang/sdk@146ad014d9 update js/meta for the 2.10 dev sdk dart-lang/sdk@488c718793 [co19] Roll co19 to d79951e06e443213243e54c2c32694b79a221b65 dart-lang/sdk@ba20edd7be Add patch for flutter-engine when changing to version 2.10 * Rev buildroot to latest version. * Update license. * update. * Update gn revision. * Format BUILD.gn files as the gn revision has been updated.
287 lines
7.5 KiB
Plaintext
287 lines
7.5 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("//build/toolchain/clang.gni")
|
|
import("//flutter/common/config.gni")
|
|
import("//flutter/shell/gpu/gpu.gni")
|
|
import("//flutter/shell/platform/embedder/embedder.gni")
|
|
import("//flutter/testing/testing.gni")
|
|
|
|
shell_gpu_configuration("embedder_gpu_configuration") {
|
|
enable_software = true
|
|
enable_vulkan = false
|
|
enable_gl = true
|
|
enable_metal = false
|
|
}
|
|
|
|
_framework_binary_subpath = "Versions/A/FlutterEmbedder"
|
|
|
|
# Template for the embedder build. Used to allow building it multiple times with
|
|
# different flags.
|
|
template("embedder_source_set") {
|
|
forward_variables_from(invoker, "*")
|
|
|
|
source_set(target_name) {
|
|
sources = [
|
|
"embedder.cc",
|
|
"embedder_engine.cc",
|
|
"embedder_engine.h",
|
|
"embedder_external_texture_gl.cc",
|
|
"embedder_external_texture_gl.h",
|
|
"embedder_external_view.cc",
|
|
"embedder_external_view.h",
|
|
"embedder_external_view_embedder.cc",
|
|
"embedder_external_view_embedder.h",
|
|
"embedder_include.c",
|
|
"embedder_include2.c",
|
|
"embedder_layers.cc",
|
|
"embedder_layers.h",
|
|
"embedder_platform_message_response.cc",
|
|
"embedder_platform_message_response.h",
|
|
"embedder_render_target.cc",
|
|
"embedder_render_target.h",
|
|
"embedder_render_target_cache.cc",
|
|
"embedder_render_target_cache.h",
|
|
"embedder_safe_access.h",
|
|
"embedder_surface.cc",
|
|
"embedder_surface.h",
|
|
"embedder_surface_gl.cc",
|
|
"embedder_surface_gl.h",
|
|
"embedder_surface_software.cc",
|
|
"embedder_surface_software.h",
|
|
"embedder_task_runner.cc",
|
|
"embedder_task_runner.h",
|
|
"embedder_thread_host.cc",
|
|
"embedder_thread_host.h",
|
|
"platform_view_embedder.cc",
|
|
"platform_view_embedder.h",
|
|
"vsync_waiter_embedder.cc",
|
|
"vsync_waiter_embedder.h",
|
|
]
|
|
|
|
deps = [
|
|
":embedder_gpu_configuration",
|
|
"//flutter/assets",
|
|
"//flutter/common",
|
|
"//flutter/flow",
|
|
"//flutter/fml",
|
|
"//flutter/lib/ui",
|
|
"//flutter/runtime:libdart",
|
|
"//flutter/shell/common",
|
|
"//flutter/third_party/tonic",
|
|
"//third_party/dart/runtime/bin:dart_io_api",
|
|
"//third_party/dart/runtime/bin:elf_loader",
|
|
"//third_party/skia",
|
|
]
|
|
|
|
public_deps = [ ":embedder_headers" ]
|
|
|
|
public_configs += [ "//flutter:config" ]
|
|
}
|
|
}
|
|
|
|
embedder_source_set("embedder") {
|
|
public_configs = []
|
|
}
|
|
|
|
embedder_source_set("embedder_as_internal_library") {
|
|
public_configs = [ ":embedder_internal_library_config" ]
|
|
}
|
|
|
|
source_set("embedder_headers") {
|
|
public = [ "embedder.h" ]
|
|
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
|
|
# For using the embedder API as internal implementation detail of an
|
|
# embedding.
|
|
config("embedder_internal_library_config") {
|
|
defines = [
|
|
# Use prefixed symbols to avoid collisions with higher level API.
|
|
"FLUTTER_API_SYMBOL_PREFIX=Embedder",
|
|
|
|
# Don't export the embedder.h API surface.
|
|
"FLUTTER_NO_EXPORT",
|
|
]
|
|
}
|
|
|
|
test_fixtures("fixtures") {
|
|
dart_main = "fixtures/main.dart"
|
|
fixtures = [
|
|
"fixtures/arc_end_caps.png",
|
|
"fixtures/compositor.png",
|
|
"fixtures/compositor_root_surface_xformation.png",
|
|
"fixtures/compositor_software.png",
|
|
"fixtures/compositor_with_platform_layer_on_bottom.png",
|
|
"fixtures/compositor_with_root_layer_only.png",
|
|
"fixtures/dpr_noxform.png",
|
|
"fixtures/dpr_xform.png",
|
|
"fixtures/gradient.png",
|
|
"fixtures/gradient_xform.png",
|
|
"fixtures/scene_without_custom_compositor.png",
|
|
"fixtures/scene_without_custom_compositor_with_xform.png",
|
|
"fixtures/verifyb143464703.png",
|
|
"fixtures/verifyb143464703_soft_noxform.png",
|
|
]
|
|
}
|
|
|
|
if (current_toolchain == host_toolchain) {
|
|
executable("embedder_unittests") {
|
|
testonly = true
|
|
|
|
configs += [ "//flutter:export_dynamic_symbols" ]
|
|
|
|
include_dirs = [ "." ]
|
|
|
|
sources = [
|
|
"tests/embedder_a11y_unittests.cc",
|
|
"tests/embedder_config_builder.cc",
|
|
"tests/embedder_config_builder.h",
|
|
"tests/embedder_test.cc",
|
|
"tests/embedder_test.h",
|
|
"tests/embedder_test_compositor.cc",
|
|
"tests/embedder_test_compositor.h",
|
|
"tests/embedder_test_context.cc",
|
|
"tests/embedder_test_context.h",
|
|
"tests/embedder_unittests.cc",
|
|
]
|
|
|
|
deps = [
|
|
":embedder",
|
|
":fixtures",
|
|
"//flutter/flow",
|
|
"//flutter/lib/ui",
|
|
"//flutter/runtime",
|
|
"//flutter/testing",
|
|
"//flutter/testing:dart",
|
|
"//flutter/testing:opengl",
|
|
"//flutter/testing:skia",
|
|
"//flutter/third_party/tonic",
|
|
"//third_party/dart/runtime/bin:elf_loader",
|
|
"//third_party/skia",
|
|
]
|
|
}
|
|
}
|
|
|
|
shared_library("flutter_engine_library") {
|
|
visibility = [ ":*" ]
|
|
|
|
output_name = "flutter_engine"
|
|
|
|
if (is_mac && !embedder_for_target) {
|
|
ldflags = [ "-Wl,-install_name,@rpath/FlutterEmbedder.framework/$_framework_binary_subpath" ]
|
|
}
|
|
|
|
deps = [ ":embedder" ]
|
|
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
|
|
copy("copy_headers") {
|
|
visibility = [ ":*" ]
|
|
sources = [ "embedder.h" ]
|
|
outputs = [ "$root_out_dir/flutter_embedder.h" ]
|
|
}
|
|
|
|
if (is_mac && !embedder_for_target) {
|
|
_flutter_embedder_framework_dir = "$root_out_dir/FlutterEmbedder.framework"
|
|
|
|
copy("copy_framework_headers") {
|
|
visibility = [ ":*" ]
|
|
sources = [ "embedder.h" ]
|
|
outputs = [
|
|
"$_flutter_embedder_framework_dir/Versions/A/Headers/FlutterEmbedder.h",
|
|
]
|
|
}
|
|
|
|
copy("copy_icu") {
|
|
visibility = [ ":*" ]
|
|
sources = [ "//third_party/icu/flutter/icudtl.dat" ]
|
|
outputs =
|
|
[ "$_flutter_embedder_framework_dir/Versions/A/Resources/icudtl.dat" ]
|
|
}
|
|
|
|
action("copy_info_plist") {
|
|
script = "//flutter/build/copy_info_plist.py"
|
|
visibility = [ ":*" ]
|
|
sources = [ "assets/EmbedderInfo.plist" ]
|
|
outputs =
|
|
[ "$_flutter_embedder_framework_dir/Versions/A/Resources/Info.plist" ]
|
|
args = [
|
|
rebase_path(sources[0]),
|
|
rebase_path(outputs[0]),
|
|
"--bitcode=$enable_bitcode",
|
|
]
|
|
}
|
|
|
|
copy("copy_module_map") {
|
|
visibility = [ ":*" ]
|
|
sources = [ "assets/embedder.modulemap" ]
|
|
outputs = [
|
|
"$_flutter_embedder_framework_dir/Versions/A/Modules/module.modulemap",
|
|
]
|
|
}
|
|
|
|
copy("copy_dylib") {
|
|
visibility = [ ":*" ]
|
|
|
|
sources = [ "$root_out_dir/libflutter_engine.dylib" ]
|
|
outputs = [ "$_flutter_embedder_framework_dir/$_framework_binary_subpath" ]
|
|
|
|
deps = [ ":flutter_engine_library" ]
|
|
}
|
|
|
|
action("generate_symlinks") {
|
|
visibility = [ ":*" ]
|
|
script = "//build/config/mac/package_framework.py"
|
|
outputs = [ "$root_build_dir/FlutterEmbedder.stamp" ]
|
|
args = [
|
|
"--framework",
|
|
"FlutterEmbedder.framework",
|
|
"--version",
|
|
"A",
|
|
"--contents",
|
|
"FlutterEmbedder",
|
|
"Resources",
|
|
"Headers",
|
|
"Modules",
|
|
"--stamp",
|
|
"FlutterEmbedder.stamp",
|
|
]
|
|
deps = [
|
|
":copy_dylib",
|
|
":copy_framework_headers",
|
|
":copy_icu",
|
|
":copy_info_plist",
|
|
":copy_module_map",
|
|
]
|
|
}
|
|
|
|
group("flutter_embedder_framework") {
|
|
visibility = [ ":*" ]
|
|
deps = [ ":generate_symlinks" ]
|
|
}
|
|
}
|
|
|
|
group("flutter_engine") {
|
|
deps = []
|
|
|
|
build_embedder_api =
|
|
current_toolchain == host_toolchain || embedder_for_target
|
|
|
|
if (build_embedder_api) {
|
|
# All platforms require the embedder dylib and headers.
|
|
deps += [
|
|
":copy_headers",
|
|
":flutter_engine_library",
|
|
]
|
|
|
|
# For the Mac, the dylib is packaged in a framework with the appropriate headers.
|
|
if (is_mac && !embedder_for_target) {
|
|
deps += [ ":flutter_embedder_framework" ]
|
|
}
|
|
}
|
|
}
|