@@ -284,6 +284,36 @@ class Dart2WasmTarget extends Dart2WebTarget {
284
284
@override
285
285
final WasmCompilerConfig compilerConfig;
286
286
287
+ /// List the preconfigured build options for a given build mode.
288
+ List <String > buildModeOptions (BuildMode mode, List <String > dartDefines) =>
289
+ switch (mode) {
290
+ BuildMode .debug => < String > [
291
+ // These checks allow the CLI to override the value of this define for unit
292
+ // testing the framework.
293
+ if (! dartDefines.any ((String define) => define.startsWith ('dart.vm.profile' )))
294
+ '-Ddart.vm.profile=false' ,
295
+ if (! dartDefines.any ((String define) => define.startsWith ('dart.vm.product' )))
296
+ '-Ddart.vm.product=false' ,
297
+ ],
298
+ BuildMode .profile => < String > [
299
+ // These checks allow the CLI to override the value of this define for
300
+ // benchmarks with most timeline traces disabled.
301
+ if (! dartDefines.any ((String define) => define.startsWith ('dart.vm.profile' )))
302
+ '-Ddart.vm.profile=true' ,
303
+ if (! dartDefines.any ((String define) => define.startsWith ('dart.vm.product' )))
304
+ '-Ddart.vm.product=false' ,
305
+ '--extra-compiler-option=--delete-tostring-package-uri=dart:ui' ,
306
+ '--extra-compiler-option=--delete-tostring-package-uri=package:flutter' ,
307
+ ],
308
+ BuildMode .release => < String > [
309
+ '-Ddart.vm.profile=false' ,
310
+ '-Ddart.vm.product=true' ,
311
+ '--extra-compiler-option=--delete-tostring-package-uri=dart:ui' ,
312
+ '--extra-compiler-option=--delete-tostring-package-uri=package:flutter' ,
313
+ ],
314
+ _ => throw Exception ('Unknown BuildMode: $mode ' )
315
+ };
316
+
287
317
@override
288
318
Future <void > build (Environment environment) async {
289
319
final String ? buildModeEnvironment = environment.defines[kBuildMode];
@@ -297,25 +327,21 @@ class Dart2WasmTarget extends Dart2WebTarget {
297
327
final File depFile = environment.buildDir.childFile ('dart2wasm.d' );
298
328
final String platformBinariesPath = artifacts.getHostArtifact (HostArtifact .webPlatformKernelFolder).path;
299
329
final String platformFilePath = environment.fileSystem.path.join (platformBinariesPath, 'dart2wasm_platform.dill' );
330
+ final List <String > dartDefines = computeDartDefines (environment);
300
331
301
332
final List <String > compilationArgs = < String > [
302
333
artifacts.getArtifactPath (Artifact .engineDartBinary, platform: TargetPlatform .web_javascript),
303
334
'compile' ,
304
335
'wasm' ,
305
336
'--packages=${findPackageConfigFileOrDefault (environment .projectDir ).path }' ,
306
337
'--extra-compiler-option=--platform=$platformFilePath ' ,
307
- '--extra-compiler-option=--delete-tostring-package-uri=dart:ui' ,
308
- '--extra-compiler-option=--delete-tostring-package-uri=package:flutter' ,
338
+ ...buildModeOptions (buildMode, dartDefines),
309
339
if (compilerConfig.renderer == WebRendererMode .skwasm) ...< String > [
310
340
'--extra-compiler-option=--import-shared-memory' ,
311
341
'--extra-compiler-option=--shared-memory-max-pages=32768' ,
312
342
],
313
- if (buildMode == BuildMode .profile)
314
- '-Ddart.vm.profile=true'
315
- else if (buildMode == BuildMode .release)
316
- '-Ddart.vm.product=true' ,
317
343
...decodeCommaSeparated (environment.defines, kExtraFrontEndOptions),
318
- for (final String dartDefine in computeDartDefines (environment) )
344
+ for (final String dartDefine in dartDefines )
319
345
'-D$dartDefine ' ,
320
346
'--extra-compiler-option=--depfile=${depFile .path }' ,
321
347
0 commit comments