@@ -140,17 +140,21 @@ Future<void> copyDart2WasmTestScript() async {
140
140
await sourceFile.copy (targetDir.path);
141
141
}
142
142
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
+
143
152
Future <void > copyCanvasKitFiles ({bool useLocalCanvasKit = false }) async {
144
153
// 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) {
152
156
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 '
154
158
'CanvasKit from CIPD.' );
155
159
}
156
160
@@ -160,19 +164,17 @@ Future<void> copyCanvasKitFiles({bool useLocalCanvasKit = false}) async {
160
164
));
161
165
162
166
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 > ();
171
169
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));
176
178
await normalTargetFile.create (recursive: true );
177
179
await file.copy (normalTargetFile.path);
178
180
}
0 commit comments