| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.cmdline; | 5 library dart2js.cmdline; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection' show Queue, LinkedHashMap; | 8 import 'dart:collection' show Queue, LinkedHashMap; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 import 'dart:utf'; | 10 import 'dart:utf'; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 79 |
| 80 void compile(List<String> argv) { | 80 void compile(List<String> argv) { |
| 81 bool isWindows = (Platform.operatingSystem == 'windows'); | 81 bool isWindows = (Platform.operatingSystem == 'windows'); |
| 82 Uri libraryRoot = currentDirectory; | 82 Uri libraryRoot = currentDirectory; |
| 83 Uri out = currentDirectory.resolve('out.js'); | 83 Uri out = currentDirectory.resolve('out.js'); |
| 84 Uri sourceMapOut = currentDirectory.resolve('out.js.map'); | 84 Uri sourceMapOut = currentDirectory.resolve('out.js.map'); |
| 85 Uri packageRoot = null; | 85 Uri packageRoot = null; |
| 86 List<String> options = new List<String>(); | 86 List<String> options = new List<String>(); |
| 87 bool explicitOut = false; | 87 bool explicitOut = false; |
| 88 bool wantHelp = false; | 88 bool wantHelp = false; |
| 89 bool wantVersion = false; |
| 89 String outputLanguage = 'JavaScript'; | 90 String outputLanguage = 'JavaScript'; |
| 90 bool stripArgumentSet = false; | 91 bool stripArgumentSet = false; |
| 91 bool analyzeOnly = false; | 92 bool analyzeOnly = false; |
| 92 SourceFileProvider inputProvider = new SourceFileProvider(); | 93 SourceFileProvider inputProvider = new SourceFileProvider(); |
| 93 FormattingDiagnosticHandler diagnosticHandler = | 94 FormattingDiagnosticHandler diagnosticHandler = |
| 94 new FormattingDiagnosticHandler(inputProvider); | 95 new FormattingDiagnosticHandler(inputProvider); |
| 95 | 96 |
| 96 passThrough(String argument) => options.add(argument); | 97 passThrough(String argument) => options.add(argument); |
| 97 | 98 |
| 98 if (BUILD_ID != null) { | 99 if (BUILD_ID != null) { |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 | 191 |
| 191 List<String> arguments = <String>[]; | 192 List<String> arguments = <String>[]; |
| 192 List<OptionHandler> handlers = <OptionHandler>[ | 193 List<OptionHandler> handlers = <OptionHandler>[ |
| 193 new OptionHandler('-[chv?]+', handleShortOptions), | 194 new OptionHandler('-[chv?]+', handleShortOptions), |
| 194 new OptionHandler('--throw-on-error', | 195 new OptionHandler('--throw-on-error', |
| 195 (_) => diagnosticHandler.throwOnError = true), | 196 (_) => diagnosticHandler.throwOnError = true), |
| 196 new OptionHandler('--suppress-warnings', | 197 new OptionHandler('--suppress-warnings', |
| 197 (_) => diagnosticHandler.showWarnings = false), | 198 (_) => diagnosticHandler.showWarnings = false), |
| 198 new OptionHandler('--output-type=dart|--output-type=js', setOutputType), | 199 new OptionHandler('--output-type=dart|--output-type=js', setOutputType), |
| 199 new OptionHandler('--verbose', setVerbose), | 200 new OptionHandler('--verbose', setVerbose), |
| 201 new OptionHandler('--version', (_) => wantVersion = true), |
| 200 new OptionHandler('--library-root=.+', setLibraryRoot), | 202 new OptionHandler('--library-root=.+', setLibraryRoot), |
| 201 new OptionHandler('--out=.+|-o.+', setOutput), | 203 new OptionHandler('--out=.+|-o.+', setOutput), |
| 202 new OptionHandler('--allow-mock-compilation', passThrough), | 204 new OptionHandler('--allow-mock-compilation', passThrough), |
| 203 new OptionHandler('--minify', passThrough), | 205 new OptionHandler('--minify', passThrough), |
| 204 new OptionHandler('--force-strip=.*', setStrip), | 206 new OptionHandler('--force-strip=.*', setStrip), |
| 205 // TODO(ahe): Remove the --no-colors option. | 207 // TODO(ahe): Remove the --no-colors option. |
| 206 new OptionHandler('--disable-diagnostic-colors', | 208 new OptionHandler('--disable-diagnostic-colors', |
| 207 (_) => diagnosticHandler.enableColors = false), | 209 (_) => diagnosticHandler.enableColors = false), |
| 208 new OptionHandler('--enable-diagnostic-colors', | 210 new OptionHandler('--enable-diagnostic-colors', |
| 209 (_) => diagnosticHandler.enableColors = true), | 211 (_) => diagnosticHandler.enableColors = true), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 228 // The following two options must come last. | 230 // The following two options must come last. |
| 229 new OptionHandler('-.*', (String argument) { | 231 new OptionHandler('-.*', (String argument) { |
| 230 helpAndFail('Error: Unknown option "$argument".'); | 232 helpAndFail('Error: Unknown option "$argument".'); |
| 231 }), | 233 }), |
| 232 new OptionHandler('.*', (String argument) { | 234 new OptionHandler('.*', (String argument) { |
| 233 arguments.add(nativeToUriPath(argument)); | 235 arguments.add(nativeToUriPath(argument)); |
| 234 }) | 236 }) |
| 235 ]; | 237 ]; |
| 236 | 238 |
| 237 parseCommandLine(handlers, argv); | 239 parseCommandLine(handlers, argv); |
| 238 if (wantHelp) helpAndExit(diagnosticHandler.verbose); | 240 if (wantHelp || wantVersion) { |
| 241 helpAndExit(wantHelp, wantVersion, diagnosticHandler.verbose); |
| 242 } |
| 239 | 243 |
| 240 if (outputLanguage != OUTPUT_LANGUAGE_DART && stripArgumentSet) { | 244 if (outputLanguage != OUTPUT_LANGUAGE_DART && stripArgumentSet) { |
| 241 helpAndFail('Error: --force-strip may only be used with ' | 245 helpAndFail('Error: --force-strip may only be used with ' |
| 242 '--output-type=dart'); | 246 '--output-type=dart'); |
| 243 } | 247 } |
| 244 if (arguments.isEmpty) { | 248 if (arguments.isEmpty) { |
| 245 helpAndFail('Error: No Dart file specified.'); | 249 helpAndFail('Error: No Dart file specified.'); |
| 246 } | 250 } |
| 247 if (arguments.length > 1) { | 251 if (arguments.length > 1) { |
| 248 var extra = arguments.sublist(1); | 252 var extra = arguments.sublist(1); |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 | 410 |
| 407 -c, --enable-checked-mode, --checked | 411 -c, --enable-checked-mode, --checked |
| 408 Insert runtime type checks and enable assertions (checked mode). | 412 Insert runtime type checks and enable assertions (checked mode). |
| 409 | 413 |
| 410 -h, /h, /?, --help | 414 -h, /h, /?, --help |
| 411 Display this message (add -v for information about all options). | 415 Display this message (add -v for information about all options). |
| 412 | 416 |
| 413 -v, --verbose | 417 -v, --verbose |
| 414 Display verbose information. | 418 Display verbose information. |
| 415 | 419 |
| 420 --version |
| 421 Display version information. |
| 422 |
| 416 -p<path>, --package-root=<path> | 423 -p<path>, --package-root=<path> |
| 417 Where to find packages, that is, "package:..." imports. | 424 Where to find packages, that is, "package:..." imports. |
| 418 | 425 |
| 419 --analyze-all | 426 --analyze-all |
| 420 Analyze all code. Without this option, the compiler only analyzes | 427 Analyze all code. Without this option, the compiler only analyzes |
| 421 code that is reachable from [main]. This option is useful for | 428 code that is reachable from [main]. This option is useful for |
| 422 finding errors in libraries, but using it can result in bigger and | 429 finding errors in libraries, but using it can result in bigger and |
| 423 slower output. | 430 slower output. |
| 424 | 431 |
| 425 --analyze-only | 432 --analyze-only |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 | 487 |
| 481 --categories=<categories> | 488 --categories=<categories> |
| 482 A comma separated list of allowed library categories. The default | 489 A comma separated list of allowed library categories. The default |
| 483 is "Client". Possible categories can be seen by providing an | 490 is "Client". Possible categories can be seen by providing an |
| 484 unsupported category, for example, --categories=help. To enable | 491 unsupported category, for example, --categories=help. To enable |
| 485 all categories, use --categories=all. | 492 all categories, use --categories=all. |
| 486 | 493 |
| 487 '''.trim()); | 494 '''.trim()); |
| 488 } | 495 } |
| 489 | 496 |
| 490 void helpAndExit(bool verbose) { | 497 void helpAndExit(bool wantHelp, bool wantVersion, bool verbose) { |
| 491 if (verbose) { | 498 if (wantVersion) { |
| 492 verboseHelp(); | 499 var version = (BUILD_ID == null) |
| 493 } else { | 500 ? '<non-SDK build>' |
| 494 help(); | 501 : BUILD_ID; |
| 502 print('Dart-to-JavaScript compiler (dart2js) version: $version'); |
| 503 } |
| 504 if (wantHelp) { |
| 505 if (verbose) { |
| 506 verboseHelp(); |
| 507 } else { |
| 508 help(); |
| 509 } |
| 495 } | 510 } |
| 496 exit(0); | 511 exit(0); |
| 497 } | 512 } |
| 498 | 513 |
| 499 void helpAndFail(String message) { | 514 void helpAndFail(String message) { |
| 500 help(); | 515 help(); |
| 501 print(''); | 516 print(''); |
| 502 fail(message); | 517 fail(message); |
| 503 } | 518 } |
| 504 | 519 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 515 print(trace); | 530 print(trace); |
| 516 } finally { | 531 } finally { |
| 517 exit(253); // 253 is recognized as a crash by our test scripts. | 532 exit(253); // 253 is recognized as a crash by our test scripts. |
| 518 } | 533 } |
| 519 } | 534 } |
| 520 } | 535 } |
| 521 | 536 |
| 522 void main() { | 537 void main() { |
| 523 mainWithErrorHandler(new Options()); | 538 mainWithErrorHandler(new Options()); |
| 524 } | 539 } |
| OLD | NEW |