mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
507 lines
14 KiB
Plaintext
507 lines
14 KiB
Plaintext
# Copyright 2019 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("//third_party/dart/build/dart/dart_action.gni")
|
|
import("//third_party/dart/utils/compile_platform.gni")
|
|
|
|
sdk_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill"
|
|
sdk_dill_sound =
|
|
"$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill"
|
|
|
|
dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json"
|
|
|
|
web_ui_sources = exec_script("//third_party/dart/tools/list_dart_files.py",
|
|
[
|
|
"absolute",
|
|
rebase_path("//flutter/lib/web_ui/lib/src/ui"),
|
|
],
|
|
"list lines")
|
|
|
|
web_ui_sources += [ "//flutter/lib/web_ui/lib/ui.dart" ]
|
|
|
|
web_engine_sources =
|
|
exec_script("//third_party/dart/tools/list_dart_files.py",
|
|
[
|
|
"absolute",
|
|
rebase_path("//flutter/lib/web_ui/lib/src/engine"),
|
|
],
|
|
"list lines")
|
|
|
|
web_engine_sources += [ "//flutter/lib/web_ui/lib/src/engine.dart" ]
|
|
|
|
group("web_sdk") {
|
|
deps = [
|
|
":flutter_dartdevc_canvaskit_html_kernel_sdk",
|
|
":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",
|
|
":flutter_dartdevc_canvaskit_kernel_sdk",
|
|
":flutter_dartdevc_canvaskit_kernel_sdk_sound",
|
|
":flutter_dartdevc_kernel_sdk",
|
|
":flutter_dartdevc_kernel_sdk_outline",
|
|
":flutter_dartdevc_kernel_sdk_outline_sound",
|
|
":flutter_dartdevc_kernel_sdk_sound",
|
|
":web_engine_sources",
|
|
":web_ui_library",
|
|
":web_ui_sources",
|
|
]
|
|
}
|
|
|
|
prebuilt_dart_action("web_ui_sources") {
|
|
inputs = web_ui_sources + [ "sdk_rewriter.dart" ]
|
|
|
|
packages = dart_sdk_package_config
|
|
script = "sdk_rewriter.dart"
|
|
output_dir = rebase_path("$root_out_dir/flutter_web_sdk/lib/ui/")
|
|
input_dir = rebase_path("//flutter/lib/web_ui/lib/")
|
|
|
|
outputs = [ "$target_gen_dir/$target_name.stamp" ]
|
|
|
|
args = [
|
|
"--output-dir=$output_dir",
|
|
"--input-dir=$input_dir",
|
|
"--ui",
|
|
"--stamp",
|
|
rebase_path(outputs[0], root_build_dir),
|
|
]
|
|
|
|
foreach(source_file, web_ui_sources) {
|
|
path = rebase_path(source_file)
|
|
args += [ "--input=$path" ]
|
|
}
|
|
}
|
|
|
|
prebuilt_dart_action("web_engine_sources") {
|
|
inputs = web_engine_sources + [ "sdk_rewriter.dart" ]
|
|
|
|
packages = dart_sdk_package_config
|
|
script = "sdk_rewriter.dart"
|
|
output_dir = rebase_path("$root_out_dir/flutter_web_sdk/lib/_engine/")
|
|
input_dir = rebase_path("//flutter/lib/web_ui/lib/src/")
|
|
|
|
outputs = [ "$target_gen_dir/$target_name.stamp" ]
|
|
|
|
args = [
|
|
"--output-dir=$output_dir",
|
|
"--input-dir=$input_dir",
|
|
"--engine",
|
|
"--stamp",
|
|
rebase_path(outputs[0], root_build_dir),
|
|
]
|
|
|
|
foreach(source_file, web_engine_sources) {
|
|
path = rebase_path(source_file)
|
|
args += [ "--input=$path" ]
|
|
}
|
|
}
|
|
|
|
copy("web_ui_library") {
|
|
sources = [ "//flutter/web_sdk/libraries.json" ]
|
|
|
|
outputs = [ "$root_out_dir/flutter_web_sdk/{{source_file_part}}" ]
|
|
}
|
|
|
|
# Compile the DDC SDK's summary.
|
|
prebuilt_dart_action("flutter_dartdevc_kernel_sdk_outline") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
outputs = [ sdk_dill ]
|
|
|
|
script = "//third_party/dart/utils/bazel/kernel_worker.dart"
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--summary-only",
|
|
"--target",
|
|
"ddc",
|
|
"--packages-file",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--output",
|
|
rebase_path(sdk_dill),
|
|
"--source",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"--source",
|
|
"dart:ui",
|
|
"--source",
|
|
"dart:_engine",
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC SDK's JS code.
|
|
prebuilt_dart_action("flutter_dartdevc_kernel_sdk") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path("$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC CanvasKit SDK's JS code.
|
|
prebuilt_dart_action("flutter_dartdevc_canvaskit_kernel_sdk") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"-DFLUTTER_WEB_USE_SKIA=true",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC CanvasKit and Html SDK's JS code.
|
|
prebuilt_dart_action("flutter_dartdevc_canvaskit_html_kernel_sdk") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"-DFLUTTER_WEB_AUTO_DETECT=true",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC SDK's JS code for null safety.
|
|
prebuilt_dart_action("flutter_dartdevc_kernel_sdk_sound") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--sound-null-safety",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC CanvasKit SDK's JS code for null safety.
|
|
prebuilt_dart_action("flutter_dartdevc_canvaskit_kernel_sdk_sound") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--sound-null-safety",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"-DFLUTTER_WEB_USE_SKIA=true",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compiles the DDC CanvasKit and Html SDK's JS code for null safety.
|
|
prebuilt_dart_action("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
packages = dart_sdk_package_config
|
|
|
|
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
|
|
|
outputs = [
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js",
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js.map",
|
|
]
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--sound-null-safety",
|
|
"--compile-sdk",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"dart:ui",
|
|
"dart:_engine",
|
|
"--no-summarize",
|
|
"--packages",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--multi-root-output-path",
|
|
rebase_path("$root_out_dir/"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--inline-source-map",
|
|
"-DFLUTTER_WEB_AUTO_DETECT=true",
|
|
"--modules",
|
|
"amd",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js"),
|
|
"--modules",
|
|
"legacy",
|
|
"-o",
|
|
rebase_path(
|
|
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js"),
|
|
]
|
|
}
|
|
|
|
# Compile the DDC SDK's summary.
|
|
prebuilt_dart_action("flutter_dartdevc_kernel_sdk_outline_sound") {
|
|
deps = [
|
|
"//third_party/dart:create_sdk",
|
|
"//third_party/dart/pkg:pkg_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
|
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
|
]
|
|
|
|
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
|
|
|
|
outputs = [ sdk_dill_sound ]
|
|
|
|
script = "//third_party/dart/utils/bazel/kernel_worker.dart"
|
|
|
|
args = [
|
|
"--enable-experiment=non-nullable",
|
|
"--sound-null-safety",
|
|
"--summary-only",
|
|
"--target",
|
|
"ddc",
|
|
"--packages-file",
|
|
"file:///" + rebase_path(dart_sdk_package_config),
|
|
"--multi-root-scheme",
|
|
"org-dartlang-sdk",
|
|
"--multi-root",
|
|
"file:///" + rebase_path("$root_out_dir"),
|
|
"--libraries-file",
|
|
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
|
"--output",
|
|
rebase_path(sdk_dill_sound),
|
|
"--source",
|
|
"dart:core",
|
|
|
|
# Additional Flutter web dart libraries
|
|
"--source",
|
|
"dart:ui",
|
|
"--source",
|
|
"dart:_engine",
|
|
]
|
|
}
|