mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Revert "Build Web SDK in wasm build tree (#36520)" (flutter/engine#36805)
This commit is contained in:
parent
c0cfc8fd22
commit
cf2bf1ba1b
@ -12,8 +12,6 @@ import("//third_party/dart/build/dart/copy_tree.gni")
|
||||
|
||||
# Whether to build the dartdevc sdk, libraries, and source files
|
||||
# required for the flutter web sdk.
|
||||
# TODO(jacksongardner): remove this poorly named argument once the recipes stop
|
||||
# using it.
|
||||
declare_args() {
|
||||
full_dart_sdk = false
|
||||
}
|
||||
@ -46,6 +44,30 @@ config("export_dynamic_symbols") {
|
||||
}
|
||||
}
|
||||
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
copy_trees("_copy_trees") {
|
||||
sources = [
|
||||
{
|
||||
target = "copy_dart_sdk"
|
||||
visibility = [ ":dart_sdk" ]
|
||||
source = prebuilt_dart_sdk
|
||||
dest = "$root_out_dir/dart-sdk"
|
||||
ignore_patterns = "{}"
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
group("dart_sdk") {
|
||||
if (build_engine_artifacts) {
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
public_deps = [ ":copy_dart_sdk" ]
|
||||
} else {
|
||||
public_deps = [ "//third_party/dart:create_sdk" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group("flutter") {
|
||||
testonly = true
|
||||
|
||||
@ -74,7 +96,7 @@ group("flutter") {
|
||||
|
||||
if (build_engine_artifacts) {
|
||||
public_deps += [
|
||||
"//flutter/dart_sdk",
|
||||
":dart_sdk",
|
||||
"//flutter/flutter_frontend_server:frontend_server",
|
||||
|
||||
# This must be listed explicitly for desktop cross-builds since
|
||||
|
||||
@ -220,6 +220,13 @@ if (build_engine_artifacts && !flutter_prebuilt_dart_sdk) {
|
||||
}
|
||||
}
|
||||
|
||||
# Archives Flutter Web SDK
|
||||
if (!is_fuchsia) {
|
||||
group("flutter_web_sdk") {
|
||||
deps = [ "//flutter/web_sdk:flutter_web_sdk_archive" ]
|
||||
}
|
||||
}
|
||||
|
||||
# Archives Flutter Windows Artifacts
|
||||
if (host_os == "win") {
|
||||
zip_bundle("windows_flutter") {
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
"flutter/build/archives:embedder",
|
||||
"flutter/build/archives:flutter_patched_sdk",
|
||||
"flutter/build/archives:dart_sdk_archive",
|
||||
"flutter/web_sdk",
|
||||
"flutter/build/archives:flutter_web_sdk",
|
||||
"flutter/tools/font-subset",
|
||||
"flutter/shell/platform/linux:flutter_gtk"
|
||||
]
|
||||
@ -151,7 +151,8 @@
|
||||
"targets": [
|
||||
"flutter:unittests",
|
||||
"flutter/build/archives:flutter_patched_sdk",
|
||||
"flutter/shell/platform/linux:flutter_gtk"
|
||||
"flutter/shell/platform/linux:flutter_gtk",
|
||||
"flutter/build/archives:flutter_web_sdk"
|
||||
]
|
||||
},
|
||||
"tests": [
|
||||
|
||||
@ -22,8 +22,6 @@ declare_args() {
|
||||
|
||||
# Whether to use a prebuilt Dart SDK instead of building one.
|
||||
flutter_prebuilt_dart_sdk = false
|
||||
|
||||
build_flutter_web_sdk = false
|
||||
}
|
||||
|
||||
# feature_defines_list ---------------------------------------------------------
|
||||
@ -116,7 +114,7 @@ if (flutter_prebuilt_dart_sdk) {
|
||||
# There is no prebuilt Dart SDK targeting Fuchsia, but we also don't need
|
||||
# one, so even when the build is targeting Fuchsia, use the prebuilt
|
||||
# Dart SDK for the host.
|
||||
if (current_toolchain == host_toolchain || is_fuchsia || is_wasm) {
|
||||
if (current_toolchain == host_toolchain || is_fuchsia) {
|
||||
prebuilt_dart_sdk = host_prebuilt_dart_sdk
|
||||
prebuilt_dart_sdk_config = _host_prebuilt_dart_sdk_config
|
||||
} else {
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
import("//flutter/common/config.gni")
|
||||
import("//third_party/dart/build/dart/copy_tree.gni")
|
||||
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
copy_trees("_copy_trees") {
|
||||
sources = [
|
||||
{
|
||||
target = "copy_dart_sdk"
|
||||
visibility = [ ":dart_sdk" ]
|
||||
source = prebuilt_dart_sdk
|
||||
dest = "$root_out_dir/dart-sdk"
|
||||
ignore_patterns = "{}"
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
group("dart_sdk") {
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
public_deps = [ ":copy_dart_sdk" ]
|
||||
} else {
|
||||
public_deps = [ "//third_party/dart:create_sdk" ]
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io' show Directory;
|
||||
import 'dart:io' show Directory, Platform;
|
||||
|
||||
import 'package:args/command_runner.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
@ -25,7 +25,6 @@ class BuildCommand extends Command<bool> with ArgUtils<bool> {
|
||||
'build-canvaskit',
|
||||
help: 'Build CanvasKit locally instead of getting it from CIPD. Disabled '
|
||||
'by default.',
|
||||
defaultsTo: true
|
||||
);
|
||||
}
|
||||
|
||||
@ -43,9 +42,15 @@ class BuildCommand extends Command<bool> with ArgUtils<bool> {
|
||||
FutureOr<bool> run() async {
|
||||
final FilePath libPath = FilePath.fromWebUi('lib');
|
||||
final List<PipelineStep> steps = <PipelineStep>[
|
||||
GnPipelineStep(buildCanvasKit: buildCanvasKit),
|
||||
NinjaPipelineStep(target: environment.wasmReleaseOutDir),
|
||||
GnPipelineStep(),
|
||||
NinjaPipelineStep(target: environment.engineBuildDir),
|
||||
];
|
||||
if (buildCanvasKit) {
|
||||
steps.addAll(<PipelineStep>[
|
||||
GnPipelineStep(target: 'canvaskit'),
|
||||
NinjaPipelineStep(target: environment.wasmReleaseOutDir),
|
||||
]);
|
||||
}
|
||||
final Pipeline buildPipeline = Pipeline(steps: steps);
|
||||
await buildPipeline.run();
|
||||
|
||||
@ -68,9 +73,8 @@ class BuildCommand extends Command<bool> with ArgUtils<bool> {
|
||||
/// Not safe to interrupt as it may leave the `out/` directory in a corrupted
|
||||
/// state. GN is pretty quick though, so it's OK to not support interruption.
|
||||
class GnPipelineStep extends ProcessStep {
|
||||
GnPipelineStep({required this.buildCanvasKit});
|
||||
|
||||
final bool buildCanvasKit;
|
||||
GnPipelineStep({this.target = 'engine'})
|
||||
: assert(target == 'engine' || target == 'canvaskit');
|
||||
|
||||
@override
|
||||
String get description => 'gn';
|
||||
@ -78,14 +82,30 @@ class GnPipelineStep extends ProcessStep {
|
||||
@override
|
||||
bool get isSafeToInterrupt => false;
|
||||
|
||||
/// The target to build with gn.
|
||||
///
|
||||
/// Acceptable values: engine, canvaskit
|
||||
final String target;
|
||||
|
||||
@override
|
||||
Future<ProcessManager> createProcess() {
|
||||
print('Running gn...');
|
||||
final List<String> gnArgs = <String>[
|
||||
'--web',
|
||||
'--runtime-mode=release',
|
||||
if (buildCanvasKit) '--build-canvaskit',
|
||||
];
|
||||
print('Running gn for $target...');
|
||||
final List<String> gnArgs = <String>[];
|
||||
if (target == 'engine') {
|
||||
gnArgs.addAll(<String>[
|
||||
'--unopt',
|
||||
if (Platform.isMacOS) '--xcode-symlinks',
|
||||
'--full-dart-sdk',
|
||||
if (environment.isMacosArm) '--mac-cpu=arm64',
|
||||
]);
|
||||
} else if (target == 'canvaskit') {
|
||||
gnArgs.addAll(<String>[
|
||||
'--wasm',
|
||||
'--runtime-mode=release',
|
||||
]);
|
||||
} else {
|
||||
throw StateError('Target was not engine or canvaskit: $target');
|
||||
}
|
||||
return startProcess(
|
||||
path.join(environment.flutterDirectory.path, 'tools', 'gn'),
|
||||
gnArgs,
|
||||
|
||||
@ -20,17 +20,21 @@ Environment? _environment;
|
||||
class Environment {
|
||||
factory Environment() {
|
||||
final bool isMacosArm = ffi.Abi.current() == ffi.Abi.macosArm64;
|
||||
final io.File dartExecutable = io.File(io.Platform.resolvedExecutable);
|
||||
final io.File self = io.File.fromUri(io.Platform.script);
|
||||
|
||||
final io.Directory engineSrcDir = self.parent.parent.parent.parent.parent;
|
||||
final io.Directory engineToolsDir =
|
||||
io.Directory(pathlib.join(engineSrcDir.path, 'flutter', 'tools'));
|
||||
final io.Directory outDir =
|
||||
io.Directory(pathlib.join(engineSrcDir.path, 'out'));
|
||||
final io.Directory engineBuildDir =
|
||||
io.Directory(pathlib.join(
|
||||
outDir.path,
|
||||
isMacosArm ? 'host_debug_unopt_arm64' : 'host_debug_unopt'
|
||||
));
|
||||
final io.Directory wasmReleaseOutDir =
|
||||
io.Directory(pathlib.join(outDir.path, 'wasm_release'));
|
||||
final io.Directory dartSdkDir = dartExecutable.parent.parent;
|
||||
final io.Directory dartSdkDir =
|
||||
io.Directory(pathlib.join(engineBuildDir.path, 'dart-sdk'));
|
||||
final io.Directory webUiRootDir = io.Directory(
|
||||
pathlib.join(engineSrcDir.path, 'flutter', 'lib', 'web_ui'));
|
||||
|
||||
@ -51,6 +55,7 @@ class Environment {
|
||||
engineSrcDir: engineSrcDir,
|
||||
engineToolsDir: engineToolsDir,
|
||||
outDir: outDir,
|
||||
engineBuildDir: engineBuildDir,
|
||||
wasmReleaseOutDir: wasmReleaseOutDir,
|
||||
dartSdkDir: dartSdkDir,
|
||||
);
|
||||
@ -63,6 +68,7 @@ class Environment {
|
||||
required this.engineSrcDir,
|
||||
required this.engineToolsDir,
|
||||
required this.outDir,
|
||||
required this.engineBuildDir,
|
||||
required this.wasmReleaseOutDir,
|
||||
required this.dartSdkDir,
|
||||
});
|
||||
@ -87,6 +93,9 @@ class Environment {
|
||||
/// This is where you'll find the ninja output, such as the Dart SDK.
|
||||
final io.Directory outDir;
|
||||
|
||||
/// The output directory for the host_debug_unopt build.
|
||||
final io.Directory engineBuildDir;
|
||||
|
||||
/// The output directory for the wasm_release build.
|
||||
///
|
||||
/// We build CanvasKit in release mode to reduce code size.
|
||||
|
||||
@ -21,8 +21,6 @@ SRC_ROOT = os.path.dirname(
|
||||
def get_out_dir(args):
|
||||
if args.target_os is not None:
|
||||
target_dir = [args.target_os]
|
||||
elif args.web:
|
||||
target_dir = ['wasm']
|
||||
else:
|
||||
target_dir = ['host']
|
||||
|
||||
@ -253,15 +251,10 @@ def to_gn_args(args):
|
||||
|
||||
# If building for WASM, set the GN args using 'to_gn_wasm_args' as most
|
||||
# of the Flutter SDK specific arguments are unused.
|
||||
if args.target_os == 'wasm' or args.web:
|
||||
if args.target_os == 'wasm':
|
||||
to_gn_wasm_args(args, gn_args)
|
||||
return gn_args
|
||||
|
||||
gn_args['build_flutter_web_sdk'] = args.build_web_sdk
|
||||
gn_args['full_dart_sdk'] = args.full_dart_sdk
|
||||
if args.build_web_sdk or args.full_dart_sdk:
|
||||
gn_args['build_canvaskit'] = args.build_canvaskit
|
||||
|
||||
if args.enable_unittests:
|
||||
gn_args['enable_unittests'] = args.enable_unittests
|
||||
|
||||
@ -366,6 +359,7 @@ def to_gn_args(args):
|
||||
gn_args['embedder_for_target'] = args.embedder_for_target
|
||||
gn_args['dart_lib_export_symbols'] = False
|
||||
gn_args['flutter_runtime_mode'] = runtime_mode
|
||||
gn_args['full_dart_sdk'] = args.full_dart_sdk
|
||||
gn_args['dart_version_git_info'] = not args.no_dart_version_git_info
|
||||
|
||||
gn_args['dart_lib_export_symbols'] = False
|
||||
@ -633,12 +627,6 @@ def to_gn_wasm_args(args, gn_args):
|
||||
gn_args['skia_canvaskit_enable_webgpu'] = False
|
||||
is_profile_build = args.runtime_mode == 'profile' or args.runtime_mode == 'debug'
|
||||
gn_args['skia_canvaskit_profile_build'] = is_profile_build
|
||||
gn_args['flutter_prebuilt_dart_sdk'] = True
|
||||
|
||||
# TODO(jacksongardner): Make this based off of the input argument rather
|
||||
# than forced to true, once the recipes are updated.
|
||||
gn_args['build_canvaskit'] = True
|
||||
gn_args['build_flutter_web_sdk'] = True
|
||||
|
||||
|
||||
def parse_args(args):
|
||||
@ -714,7 +702,6 @@ def parse_args(args):
|
||||
parser.add_argument(
|
||||
'--wasm', dest='target_os', action='store_const', const='wasm'
|
||||
)
|
||||
parser.add_argument('--web', action='store_true', default=False)
|
||||
parser.add_argument(
|
||||
'--windows', dest='target_os', action='store_const', const='win'
|
||||
)
|
||||
@ -838,27 +825,6 @@ def parse_args(args):
|
||||
'--no-full-dart-sdk', dest='full_dart_sdk', action='store_false'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--build-web-sdk',
|
||||
default=False,
|
||||
action='store_true',
|
||||
help='build the flutter web sdk'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--no-build-web-sdk', dest='build_web_sdk', action='store_false'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--build-canvaskit',
|
||||
default=False,
|
||||
action='store_true',
|
||||
help='build canvaskit from source'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--no-build-canvaskit', dest='build_canvaskit', action='store_false'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--ide',
|
||||
default='',
|
||||
@ -1002,17 +968,16 @@ def main(argv):
|
||||
'--export-compile-commands',
|
||||
]
|
||||
|
||||
if args.target_os != 'wasm':
|
||||
if args.ide != '':
|
||||
command.append('--ide=%s' % args.ide)
|
||||
elif sys.platform == 'darwin':
|
||||
# On the Mac, generate an Xcode project by default.
|
||||
command.append('--ide=xcode')
|
||||
command.append('--xcode-project=flutter_engine')
|
||||
command.append('--xcode-build-system=new')
|
||||
elif sys.platform.startswith('win'):
|
||||
# On Windows, generate a Visual Studio project.
|
||||
command.append('--ide=vs')
|
||||
if args.ide != '':
|
||||
command.append('--ide=%s' % args.ide)
|
||||
elif sys.platform == 'darwin':
|
||||
# On the Mac, generate an Xcode project by default.
|
||||
command.append('--ide=xcode')
|
||||
command.append('--xcode-project=flutter_engine')
|
||||
command.append('--xcode-build-system=new')
|
||||
elif sys.platform.startswith('win'):
|
||||
# On Windows, generate a Visual Studio project.
|
||||
command.append('--ide=vs')
|
||||
|
||||
command.append('--export-compile-commands=default')
|
||||
|
||||
|
||||
@ -6,11 +6,7 @@
|
||||
# //flutter/BUILD.gn pulls in Flutter SDK dependencies which will crash
|
||||
# when the target CPU is WASM.
|
||||
|
||||
import("//flutter/common/config.gni")
|
||||
|
||||
# This is the default target when building when the target CPU is WASM.
|
||||
group("wasm") {
|
||||
if (build_flutter_web_sdk) {
|
||||
deps = [ "//flutter/web_sdk" ]
|
||||
}
|
||||
deps = [ "//third_party/skia/modules/canvaskit" ]
|
||||
}
|
||||
|
||||
@ -6,14 +6,9 @@ import("//flutter/build/zip_bundle.gni")
|
||||
import("//flutter/common/config.gni")
|
||||
import("//third_party/dart/build/dart/dart_action.gni")
|
||||
|
||||
declare_args() {
|
||||
build_canvaskit = false
|
||||
archive_flutter_web_sdk = true
|
||||
}
|
||||
|
||||
kernel_out_dir = "$root_out_dir/flutter_web_sdk/kernel"
|
||||
sdk_dill = "$kernel_out_dir/flutter_ddc_sdk.dill"
|
||||
sdk_dill_sound = "$kernel_out_dir/flutter_ddc_sdk_sound.dill"
|
||||
sdk_dill = "$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk.dill"
|
||||
sdk_dill_sound =
|
||||
"$root_out_dir/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill"
|
||||
|
||||
dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json"
|
||||
|
||||
@ -35,10 +30,6 @@ group("web_sdk") {
|
||||
":flutter_dartdevc_kernel_sdk_outline_sound",
|
||||
":flutter_dartdevc_kernel_sdk_sound",
|
||||
]
|
||||
|
||||
if (archive_flutter_web_sdk && !is_fuchsia) {
|
||||
deps += [ ":flutter_web_sdk_archive" ]
|
||||
}
|
||||
}
|
||||
|
||||
template("sdk_rewriter") {
|
||||
@ -153,35 +144,56 @@ copy("web_ui_library") {
|
||||
#
|
||||
# args (required): The arguments to pass to dartdevc
|
||||
template("_dartdevc") {
|
||||
assert(flutter_prebuilt_dart_sdk,
|
||||
"Cannot build web sdk without prebuilt dart sdk")
|
||||
action(target_name) {
|
||||
not_needed(invoker, [ "packages" ])
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
]
|
||||
script = "//build/gn_run_binary.py"
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
action(target_name) {
|
||||
not_needed(invoker, [ "packages" ])
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
"//flutter:dart_sdk",
|
||||
]
|
||||
script = "//build/gn_run_binary.py"
|
||||
|
||||
inputs = invoker.inputs
|
||||
outputs = invoker.outputs
|
||||
inputs = invoker.inputs
|
||||
outputs = invoker.outputs
|
||||
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
|
||||
ext = ""
|
||||
if (is_win) {
|
||||
ext = ".exe"
|
||||
ext = ""
|
||||
if (is_win) {
|
||||
ext = ".exe"
|
||||
}
|
||||
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
|
||||
dartdevc = rebase_path(
|
||||
"$host_prebuilt_dart_sdk/bin/snapshots/dartdevc.dart.snapshot")
|
||||
args = [
|
||||
dart,
|
||||
dartdevc,
|
||||
] + invoker.args
|
||||
}
|
||||
} else {
|
||||
prebuilt_dart_action(target_name) {
|
||||
forward_variables_from(invoker, "*")
|
||||
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
"//flutter:dart_sdk",
|
||||
"//third_party/dart/pkg:pkg_files_stamp",
|
||||
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
||||
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
||||
]
|
||||
|
||||
script = "//third_party/dart/pkg/dev_compiler/bin/dartdevc.dart"
|
||||
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
}
|
||||
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
|
||||
dartdevc = rebase_path(
|
||||
"$host_prebuilt_dart_sdk/bin/snapshots/dartdevc.dart.snapshot")
|
||||
args = [
|
||||
dart,
|
||||
dartdevc,
|
||||
] + invoker.args
|
||||
}
|
||||
}
|
||||
|
||||
@ -195,226 +207,412 @@ template("_dartdevc") {
|
||||
#
|
||||
# args (required): The arguments to pass to the kernel_worker
|
||||
template("_kernel_worker") {
|
||||
assert(flutter_prebuilt_dart_sdk,
|
||||
"Cannot build web sdk without prebuilt dart sdk")
|
||||
action(target_name) {
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
]
|
||||
script = "//build/gn_run_binary.py"
|
||||
if (flutter_prebuilt_dart_sdk) {
|
||||
action(target_name) {
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
"//flutter:dart_sdk",
|
||||
]
|
||||
script = "//build/gn_run_binary.py"
|
||||
|
||||
inputs = invoker.inputs
|
||||
outputs = invoker.outputs
|
||||
inputs = invoker.inputs
|
||||
outputs = invoker.outputs
|
||||
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
|
||||
ext = ""
|
||||
if (is_win) {
|
||||
ext = ".exe"
|
||||
ext = ""
|
||||
if (is_win) {
|
||||
ext = ".exe"
|
||||
}
|
||||
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
|
||||
kernel_worker = rebase_path(
|
||||
"$host_prebuilt_dart_sdk/bin/snapshots/kernel_worker.dart.snapshot")
|
||||
|
||||
args = [
|
||||
dart,
|
||||
kernel_worker,
|
||||
] + invoker.args
|
||||
}
|
||||
dart = rebase_path("$host_prebuilt_dart_sdk/bin/dart$ext", root_out_dir)
|
||||
kernel_worker = rebase_path(
|
||||
"$host_prebuilt_dart_sdk/bin/snapshots/kernel_worker.dart.snapshot")
|
||||
} else {
|
||||
prebuilt_dart_action(target_name) {
|
||||
forward_variables_from(invoker, "*")
|
||||
|
||||
args = [
|
||||
dart,
|
||||
kernel_worker,
|
||||
] + invoker.args
|
||||
}
|
||||
}
|
||||
deps = [
|
||||
":skwasm_impl_library",
|
||||
":skwasm_stub_library",
|
||||
":web_engine_library",
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
"//flutter:dart_sdk",
|
||||
"//third_party/dart/pkg:pkg_files_stamp",
|
||||
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
|
||||
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
|
||||
]
|
||||
|
||||
template("_compile_outline") {
|
||||
assert(defined(invoker.sound_null_safety),
|
||||
"sound_null_safety must be defined for $target_name")
|
||||
assert(defined(invoker.output_dill),
|
||||
"output_dill must be defined for $target_name")
|
||||
script = "//third_party/dart/utils/bazel/kernel_worker.dart"
|
||||
|
||||
_kernel_worker(target_name) {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
outputs = [ invoker.output_dill ]
|
||||
|
||||
if (invoker.sound_null_safety) {
|
||||
args = [ "--sound-null-safety" ]
|
||||
} else {
|
||||
args = [ "--no-sound-null-safety" ]
|
||||
pool = "//flutter/build/dart:dart_pool"
|
||||
}
|
||||
args += [
|
||||
"--summary-only",
|
||||
"--target",
|
||||
"ddc",
|
||||
"--packages-file",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--output",
|
||||
rebase_path(invoker.output_dill),
|
||||
"--source",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"--source",
|
||||
"dart:ui",
|
||||
"--source",
|
||||
"dart:_engine",
|
||||
"--source",
|
||||
"dart:_skwasm_stub",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
# Compile the unsound DDC SDK's summary.
|
||||
_compile_outline("flutter_dartdevc_kernel_sdk_outline") {
|
||||
sound_null_safety = false
|
||||
output_dill = sdk_dill
|
||||
}
|
||||
_kernel_worker("flutter_dartdevc_kernel_sdk_outline") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
# Compile the sound DDC SDK's summary.
|
||||
_compile_outline("flutter_dartdevc_kernel_sdk_outline_sound") {
|
||||
sound_null_safety = true
|
||||
output_dill = sdk_dill_sound
|
||||
}
|
||||
outputs = [ sdk_dill ]
|
||||
|
||||
template("_compile_ddc_modules") {
|
||||
assert(defined(invoker.sound_null_safety),
|
||||
"sound_null_safety 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")
|
||||
args = [
|
||||
"--no-sound-null-safety",
|
||||
"--summary-only",
|
||||
"--target",
|
||||
"ddc",
|
||||
"--packages-file",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--output",
|
||||
rebase_path(sdk_dill),
|
||||
"--source",
|
||||
"dart:core",
|
||||
|
||||
_dartdevc(target_name) {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
name_suffix = ""
|
||||
if (invoker.use_skia) {
|
||||
name_suffix += "-canvaskit"
|
||||
}
|
||||
if (invoker.auto_detect) {
|
||||
name_suffix += "-html"
|
||||
}
|
||||
if (invoker.sound_null_safety) {
|
||||
name_suffix += "-sound"
|
||||
}
|
||||
|
||||
amd_js_path =
|
||||
"$root_out_dir/flutter_web_sdk/kernel/amd${name_suffix}/dart_sdk.js"
|
||||
legacy_js_path =
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy${name_suffix}/dart_sdk.js"
|
||||
|
||||
outputs = [
|
||||
amd_js_path,
|
||||
amd_js_path + ".map",
|
||||
legacy_js_path,
|
||||
legacy_js_path + ".map",
|
||||
]
|
||||
|
||||
if (invoker.sound_null_safety) {
|
||||
args = [ "--sound-null-safety" ]
|
||||
} else {
|
||||
args = [ "--no-sound-null-safety" ]
|
||||
}
|
||||
|
||||
args += [
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"dart:_skwasm_stub",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$host_prebuilt_dart_sdk/.."),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=${invoker.use_skia}",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=${invoker.auto_detect}",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path(amd_js_path),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(legacy_js_path),
|
||||
]
|
||||
}
|
||||
# Additional Flutter web dart libraries
|
||||
"--source",
|
||||
"dart:ui",
|
||||
"--source",
|
||||
"dart:_engine",
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the unsound html only renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_kernel_sdk") {
|
||||
sound_null_safety = false
|
||||
use_skia = false
|
||||
auto_detect = false
|
||||
_dartdevc("flutter_dartdevc_kernel_sdk") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--no-sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=false",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=false",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path("$root_out_dir/flutter_web_sdk/kernel/legacy/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the unsound canvaskit only renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_canvaskit_kernel_sdk") {
|
||||
sound_null_safety = false
|
||||
use_skia = true
|
||||
auto_detect = false
|
||||
_dartdevc("flutter_dartdevc_canvaskit_kernel_sdk") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--no-sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=true",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=false",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the unsound autodetect renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_canvaskit_html_kernel_sdk") {
|
||||
sound_null_safety = false
|
||||
use_skia = true
|
||||
auto_detect = true
|
||||
_dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--no-sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=true",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=true",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the sound html only renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_kernel_sdk_sound") {
|
||||
sound_null_safety = true
|
||||
use_skia = false
|
||||
auto_detect = false
|
||||
_dartdevc("flutter_dartdevc_kernel_sdk_sound") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=false",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=false",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path("$root_out_dir/flutter_web_sdk/kernel/amd-sound/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy-sound/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the sound canvaskit only renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_canvaskit_kernel_sdk_sound") {
|
||||
sound_null_safety = true
|
||||
use_skia = true
|
||||
auto_detect = false
|
||||
_dartdevc("flutter_dartdevc_canvaskit_kernel_sdk_sound") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=true",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=false",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-sound/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-sound/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compiles the sound autodetect renderer.
|
||||
_compile_ddc_modules("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") {
|
||||
sound_null_safety = true
|
||||
use_skia = true
|
||||
auto_detect = true
|
||||
_dartdevc("flutter_dartdevc_canvaskit_html_kernel_sdk_sound") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
packages = dart_sdk_package_config
|
||||
|
||||
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 = [
|
||||
"--sound-null-safety",
|
||||
"--compile-sdk",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"dart:ui",
|
||||
"dart:_engine",
|
||||
"--no-summarize",
|
||||
"--packages",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--multi-root-output-path",
|
||||
rebase_path("$root_out_dir/"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--inline-source-map",
|
||||
"-DFLUTTER_WEB_USE_SKIA=false",
|
||||
"-DFLUTTER_WEB_AUTO_DETECT=true",
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/amd-canvaskit-html-sound/dart_sdk.js"),
|
||||
"--modules",
|
||||
"legacy",
|
||||
"-o",
|
||||
rebase_path(
|
||||
"$root_out_dir/flutter_web_sdk/kernel/legacy-canvaskit-html-sound/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
# Compile the sound DDC SDK's summary.
|
||||
_kernel_worker("flutter_dartdevc_kernel_sdk_outline_sound") {
|
||||
inputs = [ "sdk_rewriter.dart" ] + web_ui_sources
|
||||
|
||||
outputs = [ sdk_dill_sound ]
|
||||
|
||||
args = [
|
||||
"--sound-null-safety",
|
||||
"--summary-only",
|
||||
"--target",
|
||||
"ddc",
|
||||
"--packages-file",
|
||||
"file:///" + rebase_path(dart_sdk_package_config),
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root",
|
||||
"file:///" + rebase_path("$root_out_dir"),
|
||||
"--libraries-file",
|
||||
"org-dartlang-sdk:///flutter_web_sdk/libraries.json",
|
||||
"--output",
|
||||
rebase_path(sdk_dill_sound),
|
||||
"--source",
|
||||
"dart:core",
|
||||
|
||||
# Additional Flutter web dart libraries
|
||||
"--source",
|
||||
"dart:ui",
|
||||
"--source",
|
||||
"dart:_engine",
|
||||
]
|
||||
}
|
||||
|
||||
# Archives Flutter Web SDK
|
||||
if (!is_fuchsia) {
|
||||
zip_bundle_from_file("flutter_web_sdk_archive") {
|
||||
if (target_os == "wasm") {
|
||||
output = "flutter-web-sdk.zip"
|
||||
} else {
|
||||
# TODO(jacksongardner): remove this once we stop making platform-specific
|
||||
# flutter_web_sdk archives.
|
||||
output = "flutter-web-sdk-${full_platform_name}.zip"
|
||||
}
|
||||
output = "flutter-web-sdk-${full_platform_name}.zip"
|
||||
deps = [
|
||||
":flutter_dartdevc_canvaskit_html_kernel_sdk",
|
||||
":flutter_dartdevc_canvaskit_html_kernel_sdk_sound",
|
||||
@ -430,10 +628,6 @@ if (!is_fuchsia) {
|
||||
":web_ui_library",
|
||||
":web_ui_library_sources",
|
||||
]
|
||||
|
||||
if (build_canvaskit) {
|
||||
deps += [ "//third_party/skia/modules/canvaskit" ]
|
||||
}
|
||||
sources = get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk")
|
||||
sources +=
|
||||
get_target_outputs(":flutter_dartdevc_canvaskit_html_kernel_sdk_sound")
|
||||
@ -458,18 +652,6 @@ if (!is_fuchsia) {
|
||||
},
|
||||
]
|
||||
}
|
||||
if (build_canvaskit) {
|
||||
tmp_files += [
|
||||
{
|
||||
source = rebase_path("$root_out_dir/canvaskit.js")
|
||||
destination = "canvaskit/canvaskit.js"
|
||||
},
|
||||
{
|
||||
source = rebase_path("$root_out_dir/canvaskit.wasm")
|
||||
destination = "canvaskit/canvaskit.wasm"
|
||||
},
|
||||
]
|
||||
}
|
||||
files = tmp_files
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,17 +41,21 @@ class Environment {
|
||||
required this.webUiRootDir,
|
||||
required this.engineSrcDir,
|
||||
required this.engineToolsDir,
|
||||
required this.outDir,
|
||||
});
|
||||
|
||||
static Environment _prepareEnvironmentFromEngineDir(
|
||||
io.File self, io.Directory engineSrcDir) {
|
||||
final io.Directory engineToolsDir =
|
||||
io.Directory(pathlib.join(engineSrcDir.path, 'flutter', 'tools'));
|
||||
final io.Directory outDir =
|
||||
io.Directory(pathlib.join(engineSrcDir.path, 'out'));
|
||||
final io.Directory webUiRootDir = io.Directory(
|
||||
pathlib.join(engineSrcDir.path, 'flutter', 'lib', 'web_ui'));
|
||||
|
||||
for (final io.Directory expectedDirectory in <io.Directory>[
|
||||
engineSrcDir,
|
||||
outDir,
|
||||
webUiRootDir
|
||||
]) {
|
||||
if (!expectedDirectory.existsSync()) {
|
||||
@ -64,6 +68,7 @@ class Environment {
|
||||
webUiRootDir: webUiRootDir,
|
||||
engineSrcDir: engineSrcDir,
|
||||
engineToolsDir: engineToolsDir,
|
||||
outDir: outDir,
|
||||
);
|
||||
}
|
||||
|
||||
@ -79,6 +84,11 @@ class Environment {
|
||||
/// Path to the engine's "tools" directory.
|
||||
final io.Directory engineToolsDir;
|
||||
|
||||
/// Path to the engine's "out" directory.
|
||||
///
|
||||
/// This is where you'll find the ninja output, such as the Dart SDK.
|
||||
final io.Directory outDir;
|
||||
|
||||
/// Path to where github.com/flutter/engine is checked out inside the engine workspace.
|
||||
io.Directory get flutterDirectory =>
|
||||
io.Directory(pathlib.join(engineSrcDir.path, 'flutter'));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user