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

Commit 19cf8e3

Browse files
authored
[web] Copy everything under the local canvaskit folder (#39799)
* [web] Copy everything under the local canvaskit folder * Update compile_tests_step.dart
1 parent c870282 commit 19cf8e3

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

lib/web_ui/dev/steps/compile_tests_step.dart

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,21 @@ Future<void> copyDart2WasmTestScript() async {
140140
await sourceFile.copy(targetDir.path);
141141
}
142142

143+
final io.Directory _localCanvasKitDir = io.Directory(pathlib.join(
144+
environment.wasmReleaseOutDir.path,
145+
'canvaskit',
146+
));
147+
final io.File _localCanvasKitWasm = io.File(pathlib.join(
148+
_localCanvasKitDir.path,
149+
'canvaskit.wasm',
150+
));
151+
143152
Future<void> copyCanvasKitFiles({bool useLocalCanvasKit = false}) async {
144153
// If CanvasKit has been built locally, use that instead of the CIPD version.
145-
final io.File localCanvasKitWasm = io.File(pathlib.join(
146-
environment.wasmReleaseOutDir.path,
147-
'canvaskit',
148-
'canvaskit.wasm',
149-
));
150-
final bool builtLocalCanvasKit = localCanvasKitWasm.existsSync();
151-
if (useLocalCanvasKit && !builtLocalCanvasKit) {
154+
final bool localCanvasKitExists = _localCanvasKitWasm.existsSync();
155+
if (useLocalCanvasKit && !localCanvasKitExists) {
152156
throw ArgumentError('Requested to use local CanvasKit but could not find the '
153-
'built CanvasKit at ${localCanvasKitWasm.path}. Falling back to '
157+
'built CanvasKit at ${_localCanvasKitWasm.path}. Falling back to '
154158
'CanvasKit from CIPD.');
155159
}
156160

@@ -160,19 +164,17 @@ Future<void> copyCanvasKitFiles({bool useLocalCanvasKit = false}) async {
160164
));
161165

162166
if (useLocalCanvasKit) {
163-
final List<io.File> canvasKitFiles = <io.File>[
164-
localCanvasKitWasm,
165-
io.File(pathlib.join(
166-
environment.wasmReleaseOutDir.path,
167-
'canvaskit',
168-
'canvaskit.js',
169-
)),
170-
];
167+
final Iterable<io.File> canvasKitFiles =
168+
_localCanvasKitDir.listSync(recursive: true).whereType<io.File>();
171169
for (final io.File file in canvasKitFiles) {
172-
final io.File normalTargetFile = io.File(pathlib.join(
173-
targetDir.path,
174-
pathlib.basename(file.path),
175-
));
170+
if (!file.path.endsWith('.wasm') && !file.path.endsWith('.js')) {
171+
// We only need the .wasm and .js files.
172+
continue;
173+
}
174+
final String relativePath =
175+
pathlib.relative(file.path, from: _localCanvasKitDir.path);
176+
final io.File normalTargetFile =
177+
io.File(pathlib.join(targetDir.path, relativePath));
176178
await normalTargetFile.create(recursive: true);
177179
await file.copy(normalTargetFile.path);
178180
}

0 commit comments

Comments
 (0)