Skip to content

Commit 692dfb3

Browse files
update compilation rules for null-safety (flutter#19386)
Re-attempt at flutter#19162 which seems to be stuck on a bad framework revision
1 parent 2ff740e commit 692dfb3

File tree

1 file changed

+157
-2
lines changed

1 file changed

+157
-2
lines changed

web_sdk/BUILD.gn

+157-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import("//third_party/dart/build/dart/dart_action.gni")
66
import("//third_party/dart/utils/compile_platform.gni")
77

88
sdk_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill"
9+
sdk_dill_sound =
10+
"$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill"
911

1012
web_ui_sources = exec_script("//third_party/dart/tools/list_dart_files.py",
1113
[
@@ -29,8 +31,11 @@ web_engine_sources += [ "//flutter/lib/web_ui/lib/src/engine.dart" ]
2931
group("web_sdk") {
3032
deps = [
3133
":flutter_dartdevc_canvaskit_kernel_sdk",
34+
":flutter_dartdevc_canvaskit_kernel_sdk_sound",
3235
":flutter_dartdevc_kernel_sdk",
3336
":flutter_dartdevc_kernel_sdk_outline",
37+
":flutter_dartdevc_kernel_sdk_outline_sound",
38+
":flutter_dartdevc_kernel_sdk_sound",
3439
":web_engine_sources",
3540
":web_ui_library",
3641
":web_ui_sources",
@@ -164,7 +169,6 @@ prebuilt_dart_action("flutter_dartdevc_kernel_sdk") {
164169

165170
args = [
166171
"--enable-experiment=non-nullable",
167-
"-k",
168172
"--compile-sdk",
169173
"dart:core",
170174

@@ -216,7 +220,6 @@ prebuilt_dart_action("flutter_dartdevc_canvaskit_kernel_sdk") {
216220

217221
args = [
218222
"--enable-experiment=non-nullable",
219-
"-k",
220223
"--compile-sdk",
221224
"dart:core",
222225

@@ -248,3 +251,155 @@ prebuilt_dart_action("flutter_dartdevc_canvaskit_kernel_sdk") {
248251
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js"),
249252
]
250253
}
254+
255+
# Compiles the DDC CanvasKit SDK's JS code for null safety.
256+
prebuilt_dart_action("flutter_dartdevc_canvaskit_kernel_sdk_sound") {
257+
deps = [
258+
"//third_party/dart:create_sdk",
259+
"//third_party/dart/pkg:pkg_files_stamp",
260+
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
261+
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
262+
]
263+
264+
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
265+
266+
packages = "//third_party/dart/.packages"
267+
268+
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
269+
270+
outputs = [
271+
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js",
272+
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map",
273+
]
274+
275+
args = [
276+
"--enable-experiment=non-nullable",
277+
"--sound-null-safety",
278+
"--compile-sdk",
279+
"dart:core",
280+
281+
# Additional Flutter web dart libraries
282+
"dart:ui",
283+
"dart:_engine",
284+
"--no-summarize",
285+
"--packages",
286+
"file:///" + rebase_path("//third_party/dart/.packages"),
287+
"--multi-root-scheme",
288+
"org-dartlang-sdk",
289+
"--multi-root",
290+
"file:///" + rebase_path("$root_out_dir"),
291+
"--multi-root-output-path",
292+
rebase_path("$root_out_dir/"),
293+
"--libraries-file",
294+
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
295+
"--inline-source-map",
296+
"-DFLUTTER_WEB_USE_SKIA=true",
297+
"--modules",
298+
"amd",
299+
"-o",
300+
rebase_path(
301+
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js"),
302+
"--modules",
303+
"legacy",
304+
"-o",
305+
rebase_path(
306+
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js"),
307+
]
308+
}
309+
310+
# Compiles the DDC SDK's JS code for null safety.
311+
prebuilt_dart_action("flutter_dartdevc_kernel_sdk_sound") {
312+
deps = [
313+
"//third_party/dart:create_sdk",
314+
"//third_party/dart/pkg:pkg_files_stamp",
315+
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
316+
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
317+
]
318+
319+
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
320+
321+
packages = "//third_party/dart/.packages"
322+
323+
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
324+
325+
outputs = [
326+
"$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js",
327+
"$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map",
328+
]
329+
330+
args = [
331+
"--enable-experiment=non-nullable",
332+
"--sound-null-safety",
333+
"--compile-sdk",
334+
"dart:core",
335+
336+
# Additional Flutter web dart libraries
337+
"dart:ui",
338+
"dart:_engine",
339+
"--no-summarize",
340+
"--packages",
341+
"file:///" + rebase_path("//third_party/dart/.packages"),
342+
"--multi-root-scheme",
343+
"org-dartlang-sdk",
344+
"--multi-root",
345+
"file:///" + rebase_path("$root_out_dir"),
346+
"--multi-root-output-path",
347+
rebase_path("$root_out_dir/"),
348+
"--libraries-file",
349+
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
350+
"--inline-source-map",
351+
"--modules",
352+
"amd",
353+
"-o",
354+
rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js"),
355+
"--modules",
356+
"legacy",
357+
"-o",
358+
rebase_path(
359+
"$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js"),
360+
]
361+
}
362+
363+
# Compile the DDC SDK's summary.
364+
prebuilt_dart_action("flutter_dartdevc_kernel_sdk_outline_sound") {
365+
deps = [
366+
"//third_party/dart:create_sdk",
367+
"//third_party/dart/pkg:pkg_files_stamp",
368+
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
369+
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
370+
]
371+
372+
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources + web_engine_sources
373+
374+
outputs = [
375+
sdk_dill_sound,
376+
]
377+
378+
script = "//third_party/dart/utils/bazel/kernel_worker.dart"
379+
380+
args = [
381+
"--enable-experiment=non-nullable",
382+
"--sound-null-safety ",
383+
"--summary-only",
384+
"--target",
385+
"ddc",
386+
"--packages-file",
387+
"file:///" + rebase_path("//third_party/dart/.packages"),
388+
"--multi-root-scheme",
389+
"org-dartlang-sdk",
390+
"--multi-root",
391+
"file:///" + rebase_path("$root_out_dir"),
392+
"--libraries-file",
393+
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
394+
"--output",
395+
rebase_path(sdk_dill_sound),
396+
"--source",
397+
"dart:core",
398+
399+
# Additional Flutter web dart libraries
400+
"--source",
401+
"dart:ui",
402+
"--source",
403+
"dart:_engine",
404+
]
405+
}

0 commit comments

Comments
 (0)