|
1 | 1 | #!/usr/bin/env dart
|
| 2 | +// ignore_for_file: only_throw_errors |
2 | 3 |
|
3 | 4 | import 'dart:io' show Directory, Platform, Process, ProcessResult, exit;
|
4 | 5 |
|
@@ -42,9 +43,17 @@ Future<void> main(List<String> args) async {
|
42 | 43 | targets.add(jsProductionTarget);
|
43 | 44 | break;
|
44 | 45 |
|
| 46 | + case 'wasm': |
| 47 | + targets.add(wasmTarget); |
| 48 | + break; |
| 49 | + |
| 50 | + case 'wasm-omit-checks': |
| 51 | + targets.add(wasmOmitChecksTarget); |
| 52 | + break; |
| 53 | + |
45 | 54 | default:
|
46 |
| - print( |
47 |
| - 'Unsupported target: $targetStr. Supported targets: aot, exe, jit, js, js-production'); |
| 55 | + print('Unsupported target: $targetStr. Supported targets: aot, exe, ' |
| 56 | + 'jit, js, js-production, wasm, wasm-omit-checks'); |
48 | 57 | exit(1);
|
49 | 58 | }
|
50 | 59 | }
|
@@ -135,6 +144,9 @@ const exeTarget = Target('exe', exeProcessArgs);
|
135 | 144 | const jitTarget = Target('jit', jitProcessArgs);
|
136 | 145 | const jsTarget = Target('js', jsProcessArgs);
|
137 | 146 | const jsProductionTarget = Target('js-production', jsProductionProcessArgs);
|
| 147 | +const wasmTarget = Target('wasm', wasmProcessArgs); |
| 148 | +const wasmOmitChecksTarget = |
| 149 | + Target('wasm-omit-checks', wasmOmitChecksProcessArgs); |
138 | 150 |
|
139 | 151 | List<String> aotProcessArgs(String sourceFile) {
|
140 | 152 | final baseName = path.basename(sourceFile);
|
@@ -185,3 +197,32 @@ List<String> jsProductionProcessArgs(String sourceFile) {
|
185 | 197 | 'out/$baseNameNoExt.production.js'
|
186 | 198 | ];
|
187 | 199 | }
|
| 200 | + |
| 201 | +List<String> wasmProcessArgs(String sourceFile) { |
| 202 | + final sdkPath = Platform.environment['DART_SDK']; |
| 203 | + if (sdkPath == null) { |
| 204 | + throw '\$DART_SDK environment variable is not set'; |
| 205 | + } |
| 206 | + final baseName = path.basename(sourceFile); |
| 207 | + final baseNameNoExt = path.withoutExtension(baseName); |
| 208 | + return [ |
| 209 | + '$sdkPath/../pkg/dart2wasm/tool/compile_benchmark', |
| 210 | + sourceFile, |
| 211 | + 'out/$baseNameNoExt.wasm', |
| 212 | + ]; |
| 213 | +} |
| 214 | + |
| 215 | +List<String> wasmOmitChecksProcessArgs(String sourceFile) { |
| 216 | + final sdkPath = Platform.environment['DART_SDK']; |
| 217 | + if (sdkPath == null) { |
| 218 | + throw '\$DART_SDK environment variable is not set'; |
| 219 | + } |
| 220 | + final baseName = path.basename(sourceFile); |
| 221 | + final baseNameNoExt = path.withoutExtension(baseName); |
| 222 | + return [ |
| 223 | + '$sdkPath/../pkg/dart2wasm/tool/compile_benchmark', |
| 224 | + sourceFile, |
| 225 | + 'out/$baseNameNoExt.omit-checks.wasm', |
| 226 | + '--omit-checks', |
| 227 | + ]; |
| 228 | +} |
0 commit comments