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

Commit 2cbe38b

Browse files
Produce both ddc and dart2js platform files. (#37162)
1 parent 7843ae8 commit 2cbe38b

File tree

2 files changed

+154
-34
lines changed

2 files changed

+154
-34
lines changed

tools/gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,7 @@ def main(argv):
10111011
'--export-compile-commands',
10121012
]
10131013

1014-
if args.target_os != 'wasm':
1014+
if not args.web:
10151015
if args.ide != '':
10161016
command.append('--ide=%s' % args.ide)
10171017
elif sys.platform == 'darwin':

web_sdk/BUILD.gn

Lines changed: 153 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ declare_args() {
1111
archive_flutter_web_sdk = true
1212
}
1313

14-
kernel_out_dir = "$root_out_dir/flutter_web_sdk/kernel"
15-
sdk_dill = "$kernel_out_dir/flutter_ddc_sdk.dill"
16-
sdk_dill_sound = "$kernel_out_dir/flutter_ddc_sdk_sound.dill"
17-
1814
dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json"
1915

2016
web_ui_sources = exec_script("//third_party/dart/tools/list_dart_files.py",
@@ -26,14 +22,9 @@ web_ui_sources = exec_script("//third_party/dart/tools/list_dart_files.py",
2622

2723
group("web_sdk") {
2824
deps = [
29-
":flutter_dartdevc_canvaskit_html_kernel_sdk",
30-
":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",
31-
":flutter_dartdevc_canvaskit_kernel_sdk",
32-
":flutter_dartdevc_canvaskit_kernel_sdk_sound",
33-
":flutter_dartdevc_kernel_sdk",
34-
":flutter_dartdevc_kernel_sdk_outline",
35-
":flutter_dartdevc_kernel_sdk_outline_sound",
36-
":flutter_dartdevc_kernel_sdk_sound",
25+
":flutter_ddc_modules",
26+
":flutter_legacy_platform_dills",
27+
":flutter_web_platforms",
3728
]
3829

3930
if (archive_flutter_web_sdk && !is_fuchsia) {
@@ -267,12 +258,15 @@ template("_kernel_worker") {
267258
}
268259
}
269260

270-
template("_compile_outline") {
261+
template("_compile_platform") {
271262
assert(defined(invoker.sound_null_safety),
272263
"sound_null_safety must be defined for $target_name")
264+
assert(defined(invoker.kernel_target),
265+
"kernel_target must be defined for $target_name")
266+
assert(defined(invoker.summary_only),
267+
"summary_only must be defined for $target_name")
273268
assert(defined(invoker.output_dill),
274269
"output_dill must be defined for $target_name")
275-
276270
_kernel_worker(target_name) {
277271
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
278272

@@ -283,10 +277,15 @@ template("_compile_outline") {
283277
} else {
284278
args = [ "--no-sound-null-safety" ]
285279
}
280+
281+
if (invoker.summary_only) {
282+
args += [ "--summary-only" ]
283+
} else {
284+
args += [ "--no-summary-only" ]
285+
}
286286
args += [
287-
"--summary-only",
288287
"--target",
289-
"ddc",
288+
"${invoker.kernel_target}",
290289
"--packages-file",
291290
"file:///" + rebase_path(dart_sdk_package_config),
292291
"--multi-root-scheme",
@@ -319,19 +318,113 @@ template("_compile_outline") {
319318
"file:///" + rebase_path("$root_out_dir"),
320319
]
321320
}
321+
322+
if (defined(invoker.extra_args)) {
323+
args += invoker.extra_args
324+
}
322325
}
323326
}
324327

325328
# Compile the unsound DDC SDK's summary.
326-
_compile_outline("flutter_dartdevc_kernel_sdk_outline") {
329+
_compile_platform("flutter_dartdevc_kernel_sdk_outline") {
327330
sound_null_safety = false
328-
output_dill = sdk_dill
331+
kernel_target = "ddc"
332+
summary_only = true
333+
output_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill"
329334
}
330335

331336
# Compile the sound DDC SDK's summary.
332-
_compile_outline("flutter_dartdevc_kernel_sdk_outline_sound") {
337+
_compile_platform("flutter_dartdevc_kernel_sdk_outline_sound") {
333338
sound_null_safety = true
334-
output_dill = sdk_dill_sound
339+
kernel_target = "ddc"
340+
summary_only = true
341+
output_dill =
342+
"$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill"
343+
}
344+
345+
group("flutter_legacy_platform_dills") {
346+
public_deps = [
347+
":flutter_dartdevc_kernel_sdk_outline",
348+
":flutter_dartdevc_kernel_sdk_outline_sound",
349+
]
350+
}
351+
352+
template("_flutter_web_platform") {
353+
assert(defined(invoker.output_dir),
354+
"output_dir must be defined for $target_name")
355+
assert(defined(invoker.use_skia),
356+
"use_skia must be defined for $target_name")
357+
assert(defined(invoker.auto_detect),
358+
"auto_detect must be defined for $target_name")
359+
360+
define_flags = [
361+
"-DFLUTTER_WEB_USE_SKIA=${invoker.use_skia}",
362+
"-DFLUTTER_WEB_AUTO_DETECT=${invoker.auto_detect}",
363+
]
364+
365+
_compile_platform("${target_name}_ddc_sound") {
366+
sound_null_safety = true
367+
kernel_target = "ddc"
368+
summary_only = true
369+
output_dill = "${invoker.output_dir}/ddc_outline_sound.dill"
370+
extra_args = define_flags
371+
}
372+
_compile_platform("${target_name}_ddc_unsound") {
373+
sound_null_safety = false
374+
kernel_target = "ddc"
375+
summary_only = true
376+
output_dill = "${invoker.output_dir}/ddc_outline.dill"
377+
extra_args = define_flags
378+
}
379+
_compile_platform("${target_name}_dart2js_sound") {
380+
sound_null_safety = true
381+
kernel_target = "dart2js"
382+
summary_only = false
383+
output_dill = "${invoker.output_dir}/dart2js_platform.dill"
384+
extra_args = define_flags
385+
}
386+
_compile_platform("${target_name}_dart2js_unsound") {
387+
sound_null_safety = true
388+
kernel_target = "dart2js"
389+
summary_only = false
390+
output_dill = "${invoker.output_dir}/dart2js_platform_unsound.dill"
391+
extra_args = define_flags
392+
}
393+
394+
group(target_name) {
395+
public_deps = [
396+
":${target_name}_dart2js_sound",
397+
":${target_name}_dart2js_unsound",
398+
":${target_name}_ddc_sound",
399+
":${target_name}_ddc_unsound",
400+
]
401+
}
402+
}
403+
404+
_flutter_web_platform("flutter_auto_platform") {
405+
output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/auto"
406+
use_skia = true
407+
auto_detect = true
408+
}
409+
410+
_flutter_web_platform("flutter_html_platform") {
411+
output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/html"
412+
use_skia = false
413+
auto_detect = false
414+
}
415+
416+
_flutter_web_platform("flutter_canvaskit_platform") {
417+
output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/canvaskit"
418+
use_skia = true
419+
auto_detect = false
420+
}
421+
422+
group("flutter_web_platforms") {
423+
public_deps = [
424+
":flutter_auto_platform",
425+
":flutter_canvaskit_platform",
426+
":flutter_html_platform",
427+
]
335428
}
336429

337430
template("_compile_ddc_modules") {
@@ -463,6 +556,17 @@ _compile_ddc_modules("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") {
463556
auto_detect = true
464557
}
465558

559+
group("flutter_ddc_modules") {
560+
public_deps = [
561+
":flutter_dartdevc_canvaskit_html_kernel_sdk",
562+
":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",
563+
":flutter_dartdevc_canvaskit_kernel_sdk",
564+
":flutter_dartdevc_canvaskit_kernel_sdk_sound",
565+
":flutter_dartdevc_kernel_sdk",
566+
":flutter_dartdevc_kernel_sdk_sound",
567+
]
568+
}
569+
466570
# Archives Flutter Web SDK
467571
if (!is_fuchsia) {
468572
zip_bundle_from_file("flutter_web_sdk_archive") {
@@ -475,14 +579,9 @@ if (!is_fuchsia) {
475579
output = "flutter-web-sdk-${full_platform_name}.zip"
476580
}
477581
deps = [
478-
":flutter_dartdevc_canvaskit_html_kernel_sdk",
479-
":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",
480-
":flutter_dartdevc_canvaskit_kernel_sdk",
481-
":flutter_dartdevc_canvaskit_kernel_sdk_sound",
482-
":flutter_dartdevc_kernel_sdk",
483-
":flutter_dartdevc_kernel_sdk_outline",
484-
":flutter_dartdevc_kernel_sdk_outline_sound",
485-
":flutter_dartdevc_kernel_sdk_sound",
582+
":flutter_ddc_modules",
583+
":flutter_legacy_platform_dills",
584+
":flutter_web_platforms",
486585
":skwasm_impl_library",
487586
":skwasm_stub_library",
488587
":web_engine_library",
@@ -493,16 +592,37 @@ if (!is_fuchsia) {
493592
if (build_canvaskit) {
494593
deps += [ "//third_party/skia/modules/canvaskit" ]
495594
}
496-
sources = get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk")
497-
sources +=
498-
get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound")
595+
596+
# flutter_ddc_modules
597+
sources = get_target_outputs(":flutter_dartdevc_kernel_sdk")
499598
sources += get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk")
599+
sources += get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk")
600+
sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_sound")
500601
sources +=
501602
get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk_sound")
502-
sources += get_target_outputs(":flutter_dartdevc_kernel_sdk")
603+
sources +=
604+
get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound")
605+
606+
# flutter_legacy_platform_dills
503607
sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline")
504608
sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound")
505-
sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_sound")
609+
610+
# flutter_web_platforms
611+
sources += get_target_outputs(":flutter_auto_platform_ddc_sound")
612+
sources += get_target_outputs(":flutter_auto_platform_ddc_unsound")
613+
sources += get_target_outputs(":flutter_auto_platform_dart2js_sound")
614+
sources += get_target_outputs(":flutter_auto_platform_dart2js_unsound")
615+
616+
sources += get_target_outputs(":flutter_html_platform_ddc_sound")
617+
sources += get_target_outputs(":flutter_html_platform_ddc_unsound")
618+
sources += get_target_outputs(":flutter_html_platform_dart2js_sound")
619+
sources += get_target_outputs(":flutter_html_platform_dart2js_unsound")
620+
621+
sources += get_target_outputs(":flutter_canvaskit_platform_ddc_sound")
622+
sources += get_target_outputs(":flutter_canvaskit_platform_ddc_unsound")
623+
sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_sound")
624+
sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_unsound")
625+
506626
sources += get_target_outputs(":web_ui_library")
507627
sources += get_target_outputs(":web_ui_library_sources")
508628
sources += get_target_outputs(":skwasm_stub_library")

0 commit comments

Comments
 (0)