Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 543b02d

Browse files
Build web sdk in wasm tree.
1 parent 9090078 commit 543b02d

File tree

8 files changed

+41
-75
lines changed

8 files changed

+41
-75
lines changed

BUILD.gn

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,6 @@ config("export_dynamic_symbols") {
4444
}
4545
}
4646

47-
if (flutter_prebuilt_dart_sdk) {
48-
copy_trees("_copy_trees") {
49-
sources = [
50-
{
51-
target = "copy_dart_sdk"
52-
visibility = [ ":dart_sdk" ]
53-
source = prebuilt_dart_sdk
54-
dest = "$root_out_dir/dart-sdk"
55-
ignore_patterns = "{}"
56-
},
57-
]
58-
}
59-
}
60-
61-
group("dart_sdk") {
62-
if (build_engine_artifacts) {
63-
if (flutter_prebuilt_dart_sdk) {
64-
public_deps = [ ":copy_dart_sdk" ]
65-
} else {
66-
public_deps = [ "//third_party/dart:create_sdk" ]
67-
}
68-
}
69-
}
70-
7147
group("flutter") {
7248
testonly = true
7349

@@ -96,7 +72,7 @@ group("flutter") {
9672

9773
if (build_engine_artifacts) {
9874
public_deps += [
99-
":dart_sdk",
75+
"//flutter/dart_sdk",
10076
"//flutter/flutter_frontend_server:frontend_server",
10177

10278
# This must be listed explicitly for desktop cross-builds since

common/config.gni

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ if (flutter_prebuilt_dart_sdk) {
114114
# There is no prebuilt Dart SDK targeting Fuchsia, but we also don't need
115115
# one, so even when the build is targeting Fuchsia, use the prebuilt
116116
# Dart SDK for the host.
117-
if (current_toolchain == host_toolchain || is_fuchsia) {
117+
if (current_toolchain == host_toolchain || is_fuchsia || is_wasm) {
118118
prebuilt_dart_sdk = host_prebuilt_dart_sdk
119119
prebuilt_dart_sdk_config = _host_prebuilt_dart_sdk_config
120120
} else {

dart_sdk/BUILD.gn

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import("//flutter/common/config.gni")
2+
import("//third_party/dart/build/dart/copy_tree.gni")
3+
4+
copy_trees("_copy_trees") {
5+
sources = [
6+
{
7+
target = "copy_dart_sdk"
8+
visibility = [ ":dart_sdk" ]
9+
source = prebuilt_dart_sdk
10+
dest = "$root_out_dir/dart-sdk"
11+
ignore_patterns = "{}"
12+
},
13+
]
14+
}
15+
16+
group("dart_sdk") {
17+
if (flutter_prebuilt_dart_sdk) {
18+
public_deps = [ ":copy_dart_sdk" ]
19+
} else {
20+
public_deps = [ "//third_party/dart:create_sdk" ]
21+
}
22+
}

lib/web_ui/dev/build.dart

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// found in the LICENSE file.
44

55
import 'dart:async';
6-
import 'dart:io' show Directory, Platform;
6+
import 'dart:io' show Directory;
77

88
import 'package:args/command_runner.dart';
99
import 'package:path/path.dart' as path;
@@ -43,14 +43,8 @@ class BuildCommand extends Command<bool> with ArgUtils<bool> {
4343
final FilePath libPath = FilePath.fromWebUi('lib');
4444
final List<PipelineStep> steps = <PipelineStep>[
4545
GnPipelineStep(),
46-
NinjaPipelineStep(target: environment.engineBuildDir),
46+
NinjaPipelineStep(target: environment.wasmReleaseOutDir),
4747
];
48-
if (buildCanvasKit) {
49-
steps.addAll(<PipelineStep>[
50-
GnPipelineStep(target: 'canvaskit'),
51-
NinjaPipelineStep(target: environment.wasmReleaseOutDir),
52-
]);
53-
}
5448
final Pipeline buildPipeline = Pipeline(steps: steps);
5549
await buildPipeline.run();
5650

@@ -73,39 +67,19 @@ class BuildCommand extends Command<bool> with ArgUtils<bool> {
7367
/// Not safe to interrupt as it may leave the `out/` directory in a corrupted
7468
/// state. GN is pretty quick though, so it's OK to not support interruption.
7569
class GnPipelineStep extends ProcessStep {
76-
GnPipelineStep({this.target = 'engine'})
77-
: assert(target == 'engine' || target == 'canvaskit');
78-
7970
@override
8071
String get description => 'gn';
8172

8273
@override
8374
bool get isSafeToInterrupt => false;
8475

85-
/// The target to build with gn.
86-
///
87-
/// Acceptable values: engine, canvaskit
88-
final String target;
89-
9076
@override
9177
Future<ProcessManager> createProcess() {
92-
print('Running gn for $target...');
93-
final List<String> gnArgs = <String>[];
94-
if (target == 'engine') {
95-
gnArgs.addAll(<String>[
96-
'--unopt',
97-
if (Platform.isMacOS) '--xcode-symlinks',
98-
'--full-dart-sdk',
99-
if (environment.isMacosArm) '--mac-cpu=arm64',
100-
]);
101-
} else if (target == 'canvaskit') {
102-
gnArgs.addAll(<String>[
103-
'--wasm',
104-
'--runtime-mode=release',
105-
]);
106-
} else {
107-
throw StateError('Target was not engine or canvaskit: $target');
108-
}
78+
print('Running gn...');
79+
const List<String> gnArgs = <String>[
80+
'--wasm',
81+
'--runtime-mode=release',
82+
];
10983
return startProcess(
11084
path.join(environment.flutterDirectory.path, 'tools', 'gn'),
11185
gnArgs,

lib/web_ui/dev/environment.dart

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,10 @@ class Environment {
2626
io.Directory(pathlib.join(engineSrcDir.path, 'flutter', 'tools'));
2727
final io.Directory outDir =
2828
io.Directory(pathlib.join(engineSrcDir.path, 'out'));
29-
final io.Directory engineBuildDir =
30-
io.Directory(pathlib.join(
31-
outDir.path,
32-
isMacosArm ? 'host_debug_unopt_arm64' : 'host_debug_unopt'
33-
));
3429
final io.Directory wasmReleaseOutDir =
3530
io.Directory(pathlib.join(outDir.path, 'wasm_release'));
3631
final io.Directory dartSdkDir =
37-
io.Directory(pathlib.join(engineBuildDir.path, 'dart-sdk'));
32+
io.Directory(pathlib.join(wasmReleaseOutDir.path, 'dart-sdk'));
3833
final io.Directory webUiRootDir = io.Directory(
3934
pathlib.join(engineSrcDir.path, 'flutter', 'lib', 'web_ui'));
4035

@@ -55,7 +50,6 @@ class Environment {
5550
engineSrcDir: engineSrcDir,
5651
engineToolsDir: engineToolsDir,
5752
outDir: outDir,
58-
engineBuildDir: engineBuildDir,
5953
wasmReleaseOutDir: wasmReleaseOutDir,
6054
dartSdkDir: dartSdkDir,
6155
);
@@ -68,7 +62,6 @@ class Environment {
6862
required this.engineSrcDir,
6963
required this.engineToolsDir,
7064
required this.outDir,
71-
required this.engineBuildDir,
7265
required this.wasmReleaseOutDir,
7366
required this.dartSdkDir,
7467
});
@@ -93,9 +86,6 @@ class Environment {
9386
/// This is where you'll find the ninja output, such as the Dart SDK.
9487
final io.Directory outDir;
9588

96-
/// The output directory for the host_debug_unopt build.
97-
final io.Directory engineBuildDir;
98-
9989
/// The output directory for the wasm_release build.
10090
///
10191
/// We build CanvasKit in release mode to reduce code size.

tools/gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,7 @@ def to_gn_wasm_args(args, gn_args):
627627
gn_args['skia_canvaskit_enable_webgpu'] = False
628628
is_profile_build = args.runtime_mode == 'profile' or args.runtime_mode == 'debug'
629629
gn_args['skia_canvaskit_profile_build'] = is_profile_build
630+
gn_args['flutter_prebuilt_dart_sdk'] = True
630631

631632

632633
def parse_args(args):

wasm/BUILD.gn

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@
88

99
# This is the default target when building when the target CPU is WASM.
1010
group("wasm") {
11-
deps = [ "//third_party/skia/modules/canvaskit" ]
11+
deps = [
12+
"//flutter/web_sdk",
13+
"//third_party/skia/modules/canvaskit",
14+
]
1215
}

web_sdk/BUILD.gn

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ template("_dartdevc") {
153153
":web_engine_library",
154154
":web_ui_library",
155155
":web_ui_library_sources",
156-
"//flutter:dart_sdk",
156+
"//flutter/dart_sdk",
157157
]
158158
script = "//build/gn_run_binary.py"
159159

@@ -184,7 +184,7 @@ template("_dartdevc") {
184184
":web_engine_library",
185185
":web_ui_library",
186186
":web_ui_library_sources",
187-
"//flutter:dart_sdk",
187+
"//flutter/dart_sdk",
188188
"//third_party/dart/pkg:pkg_files_stamp",
189189
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
190190
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",
@@ -215,7 +215,7 @@ template("_kernel_worker") {
215215
":web_engine_library",
216216
":web_ui_library",
217217
":web_ui_library_sources",
218-
"//flutter:dart_sdk",
218+
"//flutter/dart_sdk",
219219
]
220220
script = "//build/gn_run_binary.py"
221221

@@ -247,7 +247,7 @@ template("_kernel_worker") {
247247
":web_engine_library",
248248
":web_ui_library",
249249
":web_ui_library_sources",
250-
"//flutter:dart_sdk",
250+
"//flutter/dart_sdk",
251251
"//third_party/dart/pkg:pkg_files_stamp",
252252
"//third_party/dart/utils/dartdevc:dartdevc_files_stamp",
253253
"//third_party/dart/utils/dartdevc:dartdevc_sdk_patch_stamp",

0 commit comments

Comments
 (0)