From 19065b2ced3a65cdd54690c7cafb91e68f81ccbb Mon Sep 17 00:00:00 2001 From: Godofredo Contreras Date: Fri, 18 Feb 2022 13:18:20 -0800 Subject: [PATCH 1/2] GN targets to create flutter_web_sdk. This is required to separate the the linux builds and tests. Bug: https://github.com/flutter/flutter/issues/81855 --- build/archives/BUILD.gn | 5 +++ web_sdk/BUILD.gn | 69 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/build/archives/BUILD.gn b/build/archives/BUILD.gn index b5fda38018087..ded63e3d43c82 100644 --- a/build/archives/BUILD.gn +++ b/build/archives/BUILD.gn @@ -82,3 +82,8 @@ if (build_engine_artifacts && flutter_prebuilt_dart_sdk) { [ "$root_out_dir/zip_archives/dart-sdk-$prebuilt_dart_sdk_config" ] } } + +# Archives Flutter Web SDK +group("flutter_web_sdk") { + deps = [ "//flutter/web_sdk:flutter_web_sdk_archive" ] +} diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 55260ebaf0433..7ff1cd4cccc51 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -2,6 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//flutter/build/zip_bundle.gni") import("//flutter/common/config.gni") import("//third_party/dart/build/dart/dart_action.gni") @@ -256,6 +257,8 @@ _dartdevc("flutter_dartdevc_kernel_sdk") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js.map", ] args = [ @@ -300,6 +303,8 @@ _dartdevc("flutter_dartdevc_canvaskit_kernel_sdk") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js.map", ] args = [ @@ -346,6 +351,8 @@ _dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js.map", ] args = [ @@ -392,6 +399,8 @@ _dartdevc("flutter_dartdevc_kernel_sdk_sound") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js.map", ] args = [ @@ -437,6 +446,8 @@ _dartdevc("flutter_dartdevc_canvaskit_kernel_sdk_sound") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js.map", ] args = [ @@ -483,6 +494,8 @@ _dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") { outputs = [ "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js", "$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js.map", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js", + "$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js.map", ] args = [ @@ -551,3 +564,59 @@ _kernel_worker("flutter_dartdevc_kernel_sdk_outline_sound") { "dart:_engine", ] } + +# Archives Flutter Web SDK +zip_bundle("flutter_web_sdk_archive") { + output = "flutter-web-sdk-${host_os}-${target_cpu}.zip" + deps = [ + ":flutter_dartdevc_canvaskit_html_kernel_sdk", + ":flutter_dartdevc_canvaskit_html_kernel_sdk_sound", + ":flutter_dartdevc_canvaskit_kernel_sdk", + ":flutter_dartdevc_canvaskit_kernel_sdk_sound", + ":flutter_dartdevc_kernel_sdk", + ":flutter_dartdevc_kernel_sdk_outline", + ":flutter_dartdevc_kernel_sdk_outline_sound", + ":flutter_dartdevc_kernel_sdk_sound", + ":web_engine_sources", + ":web_ui_library", + ":web_ui_sources", + ] + sources = get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk") + sources += + get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound") + sources += get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk") + sources += get_target_outputs(":flutter_dartdevc_canvaskit_kernel_sdk_sound") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_outline_sound") + sources += get_target_outputs(":flutter_dartdevc_kernel_sdk_sound") + sources += get_target_outputs(":web_ui_library") + tmp_files = [] + foreach(source, sources) { + tmp_files += [ + { + source = source + destination = rebase_path(source, "$root_build_dir") + }, + ] + } + foreach(source, web_ui_sources) { + rebased_path = rebase_path(source, "//flutter/lib/web_ui/lib") + tmp_files += [ + { + source = source + destination = "flutter_web_sdk/lib/ui/$rebased_path" + }, + ] + } + foreach(source, web_engine_sources) { + rebased_path = rebase_path(source, "//flutter/lib/web_ui/lib/src") + tmp_files += [ + { + source = source + destination = "flutter_web_sdk/lib/_engine/$rebased_path" + }, + ] + } + files = tmp_files +} From f2db02a0faf7fa2c1607e059280be31ee7d7aa9d Mon Sep 17 00:00:00 2001 From: Godofredo Contreras Date: Fri, 18 Feb 2022 17:30:13 -0800 Subject: [PATCH 2/2] Move the host os + cpu combo to a public env variable. --- build/archives/BUILD.gn | 2 +- common/config.gni | 22 +++++++++++++--------- web_sdk/BUILD.gn | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/build/archives/BUILD.gn b/build/archives/BUILD.gn index ded63e3d43c82..c052a35e0f844 100644 --- a/build/archives/BUILD.gn +++ b/build/archives/BUILD.gn @@ -1,7 +1,7 @@ import("//flutter/build/zip_bundle.gni") zip_bundle("artifacts") { - output = "$host_os-$target_cpu/artifacts.zip" + output = "$host_os_cpu_name/artifacts.zip" deps = [ "//flutter/flutter_frontend_server:frontend_server", "//flutter/lib/snapshot:generate_snapshot_bin", diff --git a/common/config.gni b/common/config.gni index dd4c2a60da4aa..18b8fa63850af 100644 --- a/common/config.gni +++ b/common/config.gni @@ -66,7 +66,18 @@ if (is_ios || is_mac) { flutter_cflags_objcc_arc = flutter_cflags_objc_arc } -# prebuilt Dart SDK location +# A combo of host os name and cpu is used in several locations to +# generate the names of the archived artifacts. +_host_os_name = host_os +if (_host_os_name == "mac") { + _host_os_name = "macos" +} else if (_host_os_name == "win" || _host_os_name == "winuwp") { + _host_os_name = "windows" +} + +host_os_cpu_name = "$_host_os_name-$host_cpu" + +# Prebuilt Dart SDK location if (flutter_prebuilt_dart_sdk) { _target_os_name = target_os @@ -76,15 +87,8 @@ if (flutter_prebuilt_dart_sdk) { _target_os_name = "windows" } - _host_os_name = host_os - if (_host_os_name == "mac") { - _host_os_name = "macos" - } else if (_host_os_name == "win" || _host_os_name == "winuwp") { - _host_os_name = "windows" - } - _target_prebuilt_dart_sdk_config = "$_target_os_name-$target_cpu" - _host_prebuilt_dart_sdk_config = "$_host_os_name-$host_cpu" + _host_prebuilt_dart_sdk_config = "$host_os_cpu_name" _target_prebuilt_dart_sdk_archive = "//flutter/prebuilts/dartsdk-$_target_prebuilt_dart_sdk_config-release.zip" _host_prebuilt_dart_sdk_archive = "//flutter/prebuilts/dartsdk-$_host_prebuilt_dart_sdk_config-release.zip" diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 7ff1cd4cccc51..70b3b1236767f 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -567,7 +567,7 @@ _kernel_worker("flutter_dartdevc_kernel_sdk_outline_sound") { # Archives Flutter Web SDK zip_bundle("flutter_web_sdk_archive") { - output = "flutter-web-sdk-${host_os}-${target_cpu}.zip" + output = "flutter-web-sdk-${host_os_cpu_name}.zip" deps = [ ":flutter_dartdevc_canvaskit_html_kernel_sdk", ":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",