From 2b98c115bff39e3dc2abf623c088263017c588c5 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Tue, 22 Nov 2022 16:27:31 -0800 Subject: [PATCH 1/6] Build dart2js platform kernels with null environment. --- web_sdk/BUILD.gn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index a73a63361cee5..a3d54201e6065 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -277,6 +277,9 @@ template("_compile_platform") { } else { args += [ "--no-summary-only" ] } + if (defined(invoker.null_environment) && invoker.null_environment) { + args += [ "--null-environment" ] + } args += [ "--target", "${invoker.kernel_target}", @@ -338,8 +341,27 @@ _compile_platform("flutter_dartdevc_kernel_sdk_outline_sound") { "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" } +_compile_platform("flutter_dart2js_kernel_sdk_full_unsound") { + sound_null_safety = false + kernel_target = "dart2js" + summary_only = false + output_dill = + "$root_out_dir/flutter_web_sdk/kernel/dart2js_platform_unsound.dill" + null_environment = true +} + +_compile_platform("flutter_dart2js_kernel_sdk_full_sound") { + sound_null_safety = true + kernel_target = "dart2js" + summary_only = false + output_dill = "$root_out_dir/flutter_web_sdk/kernel/dart2js_platform.dill" + null_environment = false +} + group("flutter_legacy_platform_dills") { public_deps = [ + ":flutter_dart2js_kernel_sdk_full_sound", + ":flutter_dart2js_kernel_sdk_full_unsound", ":flutter_dartdevc_kernel_sdk_outline", ":flutter_dartdevc_kernel_sdk_outline_sound", ] @@ -598,6 +620,8 @@ if (!is_fuchsia) { # flutter_legacy_platform_dills sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline") sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") + sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_unsound") + sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_sound") # flutter_web_platforms sources += get_target_outputs(":flutter_auto_platform_ddc_sound") From 655e220590b962415806143d4f68402a6e49a031 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Tue, 22 Nov 2022 17:49:21 -0800 Subject: [PATCH 2/6] Null environment should be true. --- web_sdk/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index a3d54201e6065..8b310fb838393 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -355,7 +355,7 @@ _compile_platform("flutter_dart2js_kernel_sdk_full_sound") { kernel_target = "dart2js" summary_only = false output_dill = "$root_out_dir/flutter_web_sdk/kernel/dart2js_platform.dill" - null_environment = false + null_environment = true } group("flutter_legacy_platform_dills") { From e9a45d735bf7ef2f549c4e1f4c26f048c2874e61 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Wed, 23 Nov 2022 11:00:21 -0800 Subject: [PATCH 3/6] More cleanup of gn steps. --- web_sdk/BUILD.gn | 131 ++++++++++------------------------------------- 1 file changed, 28 insertions(+), 103 deletions(-) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 8b310fb838393..1282d7b32b314 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -32,8 +32,7 @@ web_engine_libraries = [ group("web_sdk") { deps = [ ":flutter_ddc_modules", - ":flutter_legacy_platform_dills", - ":flutter_web_platforms", + ":flutter_platform_dills", ] if (archive_flutter_web_sdk && !is_fuchsia) { @@ -317,19 +316,15 @@ template("_compile_platform") { "file:///" + rebase_path("$root_out_dir"), ] } - - if (defined(invoker.extra_args)) { - args += invoker.extra_args - } } } # Compile the unsound DDC SDK's summary. -_compile_platform("flutter_dartdevc_kernel_sdk_outline") { +_compile_platform("flutter_dartdevc_kernel_sdk_outline_unsound") { sound_null_safety = false kernel_target = "ddc" summary_only = true - output_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill" + output_dill = "$root_out_dir/flutter_web_sdk/kernel/ddc_outline.dill" } # Compile the sound DDC SDK's summary. @@ -338,7 +333,7 @@ _compile_platform("flutter_dartdevc_kernel_sdk_outline_sound") { kernel_target = "ddc" summary_only = true output_dill = - "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" + "$root_out_dir/flutter_web_sdk/kernel/ddc_outline_sound.dill" } _compile_platform("flutter_dart2js_kernel_sdk_full_unsound") { @@ -358,90 +353,33 @@ _compile_platform("flutter_dart2js_kernel_sdk_full_sound") { null_environment = true } -group("flutter_legacy_platform_dills") { - public_deps = [ - ":flutter_dart2js_kernel_sdk_full_sound", - ":flutter_dart2js_kernel_sdk_full_unsound", - ":flutter_dartdevc_kernel_sdk_outline", - ":flutter_dartdevc_kernel_sdk_outline_sound", - ] -} +# TODO(jacksongardner): remove these once they are no longer used by the flutter tool +copy("flutter_dartdevc_kernel_sdk_outline_unsound_legacy") { + sources = get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound") -template("_flutter_web_platform") { - assert(defined(invoker.output_dir), - "output_dir must be defined for $target_name") - assert(defined(invoker.use_skia), - "use_skia must be defined for $target_name") - assert(defined(invoker.auto_detect), - "auto_detect must be defined for $target_name") - - define_flags = [ - "-DFLUTTER_WEB_USE_SKIA=${invoker.use_skia}", - "-DFLUTTER_WEB_AUTO_DETECT=${invoker.auto_detect}", - ] - - _compile_platform("${target_name}_ddc_sound") { - sound_null_safety = true - kernel_target = "ddc" - summary_only = true - output_dill = "${invoker.output_dir}/ddc_outline_sound.dill" - extra_args = define_flags - } - _compile_platform("${target_name}_ddc_unsound") { - sound_null_safety = false - kernel_target = "ddc" - summary_only = true - output_dill = "${invoker.output_dir}/ddc_outline.dill" - extra_args = define_flags - } - _compile_platform("${target_name}_dart2js_sound") { - sound_null_safety = true - kernel_target = "dart2js" - summary_only = false - output_dill = "${invoker.output_dir}/dart2js_platform.dill" - extra_args = define_flags - } - _compile_platform("${target_name}_dart2js_unsound") { - sound_null_safety = false - kernel_target = "dart2js" - summary_only = false - output_dill = "${invoker.output_dir}/dart2js_platform_unsound.dill" - extra_args = define_flags - } + outputs = [ "$root_out_dir/flutter_web_sdk/flutter_ddc_sdk.dill" ] - group(target_name) { - public_deps = [ - ":${target_name}_dart2js_sound", - ":${target_name}_dart2js_unsound", - ":${target_name}_ddc_sound", - ":${target_name}_ddc_unsound", - ] - } + deps = [ ":flutter_dartdevc_kernel_sdk_outline_unsound" ] } -_flutter_web_platform("flutter_auto_platform") { - output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/auto" - use_skia = true - auto_detect = true -} +copy("flutter_dartdevc_kernel_sdk_outline_sound_legacy") { + sources = get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") -_flutter_web_platform("flutter_html_platform") { - output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/html" - use_skia = false - auto_detect = false -} + outputs = [ "$root_out_dir/flutter_web_sdk/flutter_ddc_sdk_sound.dill" ] -_flutter_web_platform("flutter_canvaskit_platform") { - output_dir = "$root_out_dir/flutter_web_sdk/kernel/platforms/canvaskit" - use_skia = true - auto_detect = false + deps = [ ":flutter_dartdevc_kernel_sdk_outline_sound" ] } -group("flutter_web_platforms") { +group("flutter_platform_dills") { public_deps = [ - ":flutter_auto_platform", - ":flutter_canvaskit_platform", - ":flutter_html_platform", + ":flutter_dart2js_kernel_sdk_full_sound", + ":flutter_dart2js_kernel_sdk_full_unsound", + ":flutter_dartdevc_kernel_sdk_outline_unsound", + ":flutter_dartdevc_kernel_sdk_outline_sound", + + # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + ":flutter_dartdevc_kernel_sdk_outline_unsound", + ":flutter_dartdevc_kernel_sdk_outline_sound", ] } @@ -599,8 +537,7 @@ if (!is_fuchsia) { } deps = [ ":flutter_ddc_modules", - ":flutter_legacy_platform_dills", - ":flutter_web_platforms", + ":flutter_platform_dills", ] + web_engine_libraries if (build_canvaskit) { @@ -617,27 +554,15 @@ if (!is_fuchsia) { sources += get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound") - # flutter_legacy_platform_dills - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline") + # flutter_platform_dills + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound") sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_unsound") sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_sound") - # flutter_web_platforms - sources += get_target_outputs(":flutter_auto_platform_ddc_sound") - sources += get_target_outputs(":flutter_auto_platform_ddc_unsound") - sources += get_target_outputs(":flutter_auto_platform_dart2js_sound") - sources += get_target_outputs(":flutter_auto_platform_dart2js_unsound") - - sources += get_target_outputs(":flutter_html_platform_ddc_sound") - sources += get_target_outputs(":flutter_html_platform_ddc_unsound") - sources += get_target_outputs(":flutter_html_platform_dart2js_sound") - sources += get_target_outputs(":flutter_html_platform_dart2js_unsound") - - sources += get_target_outputs(":flutter_canvaskit_platform_ddc_sound") - sources += get_target_outputs(":flutter_canvaskit_platform_ddc_unsound") - sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_sound") - sources += get_target_outputs(":flutter_canvaskit_platform_dart2js_unsound") + # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound_legacy") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound_legacy") foreach(web_engine_library, web_engine_libraries) { sources += get_target_outputs(web_engine_library) From 5c34185e2a77ed70e93563f836135f24bd98f1ce Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Mon, 28 Nov 2022 10:23:06 -0800 Subject: [PATCH 4/6] Fix build steps. --- web_sdk/BUILD.gn | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 1282d7b32b314..fac20094e9db1 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -357,7 +357,7 @@ _compile_platform("flutter_dart2js_kernel_sdk_full_sound") { copy("flutter_dartdevc_kernel_sdk_outline_unsound_legacy") { sources = get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound") - outputs = [ "$root_out_dir/flutter_web_sdk/flutter_ddc_sdk.dill" ] + outputs = [ "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill" ] deps = [ ":flutter_dartdevc_kernel_sdk_outline_unsound" ] } @@ -365,7 +365,7 @@ copy("flutter_dartdevc_kernel_sdk_outline_unsound_legacy") { copy("flutter_dartdevc_kernel_sdk_outline_sound_legacy") { sources = get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") - outputs = [ "$root_out_dir/flutter_web_sdk/flutter_ddc_sdk_sound.dill" ] + outputs = [ "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" ] deps = [ ":flutter_dartdevc_kernel_sdk_outline_sound" ] } @@ -521,6 +521,10 @@ group("flutter_ddc_modules") { ":flutter_dartdevc_canvaskit_kernel_sdk_sound", ":flutter_dartdevc_kernel_sdk", ":flutter_dartdevc_kernel_sdk_sound", + + # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy", + ":flutter_dartdevc_kernel_sdk_outline_sound_legacy", ] } From e325b821bfdd36093536cc63a4d6086b32a78dde Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Mon, 28 Nov 2022 10:23:52 -0800 Subject: [PATCH 5/6] Fix formatting. --- web_sdk/BUILD.gn | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index fac20094e9db1..23bbaa1d55bdc 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -332,8 +332,7 @@ _compile_platform("flutter_dartdevc_kernel_sdk_outline_sound") { sound_null_safety = true kernel_target = "ddc" summary_only = true - output_dill = - "$root_out_dir/flutter_web_sdk/kernel/ddc_outline_sound.dill" + output_dill = "$root_out_dir/flutter_web_sdk/kernel/ddc_outline_sound.dill" } _compile_platform("flutter_dart2js_kernel_sdk_full_unsound") { @@ -365,7 +364,8 @@ copy("flutter_dartdevc_kernel_sdk_outline_unsound_legacy") { copy("flutter_dartdevc_kernel_sdk_outline_sound_legacy") { sources = get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") - outputs = [ "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" ] + outputs = + [ "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill" ] deps = [ ":flutter_dartdevc_kernel_sdk_outline_sound" ] } @@ -374,12 +374,12 @@ group("flutter_platform_dills") { public_deps = [ ":flutter_dart2js_kernel_sdk_full_sound", ":flutter_dart2js_kernel_sdk_full_unsound", - ":flutter_dartdevc_kernel_sdk_outline_unsound", ":flutter_dartdevc_kernel_sdk_outline_sound", + ":flutter_dartdevc_kernel_sdk_outline_unsound", # TODO(jacksongardner): remove these once they are no longer used by the flutter tool - ":flutter_dartdevc_kernel_sdk_outline_unsound", ":flutter_dartdevc_kernel_sdk_outline_sound", + ":flutter_dartdevc_kernel_sdk_outline_unsound", ] } @@ -523,8 +523,8 @@ group("flutter_ddc_modules") { ":flutter_dartdevc_kernel_sdk_sound", # TODO(jacksongardner): remove these once they are no longer used by the flutter tool - ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy", ":flutter_dartdevc_kernel_sdk_outline_sound_legacy", + ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy", ] } @@ -559,14 +559,17 @@ if (!is_fuchsia) { get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound") # flutter_platform_dills - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound") + sources += + get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound") sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_unsound") sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_sound") # TODO(jacksongardner): remove these once they are no longer used by the flutter tool - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_unsound_legacy") - sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound_legacy") + sources += get_target_outputs( + ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy") + sources += + get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound_legacy") foreach(web_engine_library, web_engine_libraries) { sources += get_target_outputs(web_engine_library) From 2af4d2c813288273576ad350f285b62f49d397a2 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Mon, 28 Nov 2022 16:43:52 -0800 Subject: [PATCH 6/6] Add links to the cleanup github issue. --- web_sdk/BUILD.gn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 23bbaa1d55bdc..12f266963becf 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -378,6 +378,7 @@ group("flutter_platform_dills") { ":flutter_dartdevc_kernel_sdk_outline_unsound", # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + # https://github.com/flutter/flutter/issues/113303 ":flutter_dartdevc_kernel_sdk_outline_sound", ":flutter_dartdevc_kernel_sdk_outline_unsound", ] @@ -523,6 +524,7 @@ group("flutter_ddc_modules") { ":flutter_dartdevc_kernel_sdk_sound", # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + # https://github.com/flutter/flutter/issues/113303 ":flutter_dartdevc_kernel_sdk_outline_sound_legacy", ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy", ] @@ -566,6 +568,7 @@ if (!is_fuchsia) { sources += get_target_outputs(":flutter_dart2js_kernel_sdk_full_sound") # TODO(jacksongardner): remove these once they are no longer used by the flutter tool + # https://github.com/flutter/flutter/issues/113303 sources += get_target_outputs( ":flutter_dartdevc_kernel_sdk_outline_unsound_legacy") sources +=