@@ -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-
1814dart_sdk_package_config = " //third_party/dart/.dart_tool/package_config.json"
1915
2016web_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
2723group (" 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
337430template (" _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
467571if (! 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