Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Restore support for building the web SDK without a prebuilt Dart SDK #36926

Merged
merged 1 commit into from
Oct 21, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 112 additions & 54 deletions web_sdk/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -153,35 +153,55 @@ copy("web_ui_library") {
#
# args (required): The arguments to pass to dartdevc
template("_dartdevc") {
assert(flutter_prebuilt_dart_sdk,
"Cannot build web sdk without prebuilt dart sdk")
action(target_name) {
not_needed(invoker, [ "packages" ])
deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
]
script = "//build/gn_run_binary.py"
if (flutter_prebuilt_dart_sdk) {
action(target_name) {
not_needed(invoker, [ "packages" ])
deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
]
script = "//build/gn_run_binary.py"

inputs = invoker.inputs
outputs = invoker.outputs

pool = "//flutter/build/dart:dart_pool"

ext = ""
if (is_win) {
ext = ".exe"
}
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
dartdevc = rebase_path(
"$host_prebuilt_dart_sdk/bin/snapshots/dartdevc.dart.snapshot")
args = [
dart,
dartdevc,
] + invoker.args
}
} else {
prebuilt_dart_action(target_name) {
forward_variables_from(invoker, "*")

deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
"//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 = invoker.inputs
outputs = invoker.outputs
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"

pool = "//flutter/build/dart:dart_pool"

ext = ""
if (is_win) {
ext = ".exe"
pool = "//flutter/build/dart:dart_pool"
}
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
dartdevc = rebase_path(
"$host_prebuilt_dart_sdk/bin/snapshots/dartdevc.dart.snapshot")
args = [
dart,
dartdevc,
] + invoker.args
}
}

Expand All @@ -195,35 +215,55 @@ template("_dartdevc") {
#
# args (required): The arguments to pass to the kernel_worker
template("_kernel_worker") {
assert(flutter_prebuilt_dart_sdk,
"Cannot build web sdk without prebuilt dart sdk")
action(target_name) {
deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
]
script = "//build/gn_run_binary.py"
if (flutter_prebuilt_dart_sdk) {
action(target_name) {
deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
]
script = "//build/gn_run_binary.py"

inputs = invoker.inputs
outputs = invoker.outputs
inputs = invoker.inputs
outputs = invoker.outputs

pool = "//flutter/build/dart:dart_pool"
pool = "//flutter/build/dart:dart_pool"

ext = ""
if (is_win) {
ext = ".exe"
}
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
kernel_worker = rebase_path(
"$host_prebuilt_dart_sdk/bin/snapshots/kernel_worker.dart.snapshot")

ext = ""
if (is_win) {
ext = ".exe"
args = [
dart,
kernel_worker,
] + invoker.args
}
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
kernel_worker = rebase_path(
"$host_prebuilt_dart_sdk/bin/snapshots/kernel_worker.dart.snapshot")
} else {
prebuilt_dart_action(target_name) {
forward_variables_from(invoker, "*")

deps = [
":skwasm_impl_library",
":skwasm_stub_library",
":web_engine_library",
":web_ui_library",
":web_ui_library_sources",
"//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",
]

args = [
dart,
kernel_worker,
] + invoker.args
script = "//third_party/dart/utils/bazel/kernel_worker.dart"

pool = "//flutter/build/dart:dart_pool"
}
}
}

Expand Down Expand Up @@ -253,8 +293,6 @@ template("_compile_outline") {
"org-dartlang-sdk",
"--multi-root",
"file:///" + rebase_path("$root_out_dir/flutter_web_sdk"),
"--multi-root",
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
"--libraries-file",
"org-dartlang-sdk:///libraries.json",
"--output",
Expand All @@ -270,6 +308,17 @@ template("_compile_outline") {
"--source",
"dart:_skwasm_stub",
]
if (flutter_prebuilt_dart_sdk) {
args += [
"--multi-root",
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
]
} else {
args += [
"--multi-root",
"file:///" + rebase_path("$root_out_dir"),
]
}
}
}

Expand Down Expand Up @@ -342,8 +391,6 @@ template("_compile_ddc_modules") {
"org-dartlang-sdk",
"--multi-root",
"file:///" + rebase_path("$root_out_dir/flutter_web_sdk"),
"--multi-root",
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
"--multi-root-output-path",
rebase_path("$root_out_dir/"),
"--libraries-file",
Expand All @@ -360,6 +407,17 @@ template("_compile_ddc_modules") {
"-o",
rebase_path(legacy_js_path),
]
if (flutter_prebuilt_dart_sdk) {
args += [
"--multi-root",
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
]
} else {
args += [
"--multi-root",
"file:///" + rebase_path("$root_out_dir"),
]
}
}
}

Expand Down