diff --git a/build/archives/BUILD.gn b/build/archives/BUILD.gn index b5fda38018087..1afec65862c16 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 = "$full_platform_name/artifacts.zip" deps = [ "//flutter/flutter_frontend_server:frontend_server", "//flutter/lib/snapshot:generate_snapshot_bin", @@ -82,3 +82,10 @@ if (build_engine_artifacts && flutter_prebuilt_dart_sdk) { [ "$root_out_dir/zip_archives/dart-sdk-$prebuilt_dart_sdk_config" ] } } + +# Archives Flutter Web SDK +if (!is_fuchsia) { + group("flutter_web_sdk") { + deps = [ "//flutter/web_sdk:flutter_web_sdk_archive" ] + } +} diff --git a/common/config.gni b/common/config.gni index dd4c2a60da4aa..45e3cc962e5fb 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. +_platform_name = host_os +if (_platform_name == "mac") { + _platform_name = "darwin" +} else if (_platform_name == "win" || _platform_name == "winuwp") { + _platform_name = "windows" +} + +full_platform_name = "$_platform_name-$host_cpu" + +# Prebuilt Dart SDK location if (flutter_prebuilt_dart_sdk) { _target_os_name = target_os diff --git a/tools/font-subset/BUILD.gn b/tools/font-subset/BUILD.gn index c6c1486a150ac..ef647fff5702d 100644 --- a/tools/font-subset/BUILD.gn +++ b/tools/font-subset/BUILD.gn @@ -41,7 +41,7 @@ generated_file("_font-subset-license") { } zip_bundle("font-subset") { - output = "font-subset.zip" + output = "${full_platform_name}/font-subset.zip" font_subset_bin = "font-subset" if (is_win) { diff --git a/tools/font-subset/test.py b/tools/font-subset/test.py index 977dec352be44..fe49e67465e25 100755 --- a/tools/font-subset/test.py +++ b/tools/font-subset/test.py @@ -14,6 +14,19 @@ import sys from zipfile import ZipFile + +# Dictionary to map the platform name to the output directory +# of the font artifacts. +PLATFORM_2_PATH = { + 'darwin': 'darwin-x64', + 'linux': 'linux-x64', + 'linux2': 'linux-x64', + 'cygwin': 'windows-x64', + 'win': 'windows-x64', + 'win32': 'windows-x64', +} + + SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) SRC_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, '..', '..', '..')) MATERIAL_TTF = os.path.join(SCRIPT_DIR, 'fixtures', 'MaterialIcons-Regular.ttf') @@ -21,10 +34,10 @@ EXE = '.exe' if IS_WINDOWS else '' BAT = '.bat' if IS_WINDOWS else '' FONT_SUBSET = os.path.join(SRC_DIR, 'out', 'host_debug', 'font-subset' + EXE) -FONT_SUBSET_ZIP = os.path.join(SRC_DIR, 'out', 'host_debug', 'zip_archives', 'font-subset.zip') +FONT_SUBSET_ZIP = os.path.join(SRC_DIR, 'out', 'host_debug', 'zip_archives', PLATFORM_2_PATH.get(sys.platform, ''), 'font-subset.zip') if not os.path.isfile(FONT_SUBSET): FONT_SUBSET = os.path.join(SRC_DIR, 'out', 'host_debug_unopt', 'font-subset' + EXE) - FONT_SUBSET_ZIP = os.path.join(SRC_DIR, 'out', 'host_debug_unopt', 'zip_archives', 'font-subset.zip') + FONT_SUBSET_ZIP = os.path.join(SRC_DIR, 'out', 'host_debug_unopt', 'zip_archives', PLATFORM_2_PATH.get(sys.platform, ''), 'font-subset.zip') if not os.path.isfile(FONT_SUBSET): raise Exception('Could not locate font-subset%s in host_debug or host_debug_unopt - build before running this script.' % EXE) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 55260ebaf0433..d285b7e1f9bae 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,62 @@ _kernel_worker("flutter_dartdevc_kernel_sdk_outline_sound") { "dart:_engine", ] } + +# Archives Flutter Web SDK +if (!is_fuchsia) { + zip_bundle("flutter_web_sdk_archive") { + output = "flutter-web-sdk-${full_platform_name}.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 + } +}