OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 fasta.compiler_command_line; | 5 library fasta.compiler_command_line; |
6 | 6 |
7 import 'dart:io' show | 7 import 'dart:io' show |
8 exit; | 8 exit; |
9 | 9 |
10 import 'command_line.dart' show | 10 import 'command_line.dart' show |
11 CommandLine, | 11 CommandLine, |
12 argumentError; | 12 argumentError; |
13 | 13 |
| 14 import 'compiler_context.dart' show |
| 15 CompilerContext; |
| 16 |
14 const Map<String, dynamic> optionSpecification = const <String, dynamic>{ | 17 const Map<String, dynamic> optionSpecification = const <String, dynamic>{ |
15 "-o": Uri, | 18 "-o": Uri, |
16 "--output": Uri, | 19 "--output": Uri, |
17 "--platform": Uri, | 20 "--platform": Uri, |
18 "--packages": Uri, | 21 "--packages": Uri, |
| 22 "--fatal": ",", |
19 }; | 23 }; |
20 | 24 |
21 class CompilerCommandLine extends CommandLine { | 25 class CompilerCommandLine extends CommandLine { |
22 final String programName; | 26 final String programName; |
23 | 27 |
24 CompilerCommandLine(String programName, List<String> arguments) | 28 CompilerCommandLine(String programName, List<String> arguments) |
25 : programName = programName, | 29 : programName = programName, |
26 super(arguments, specification: optionSpecification, | 30 super(arguments, specification: optionSpecification, |
27 usage: computeUsage(programName, false)); | 31 usage: computeUsage(programName, false)); |
28 | 32 |
(...skipping 29 matching lines...) Expand all Loading... |
58 return options["-o"] ?? options["--output"] ?? defaultOutput; | 62 return options["-o"] ?? options["--output"] ?? defaultOutput; |
59 } | 63 } |
60 | 64 |
61 Uri get defaultOutput => Uri.base.resolve("${arguments.first}.dill"); | 65 Uri get defaultOutput => Uri.base.resolve("${arguments.first}.dill"); |
62 | 66 |
63 Uri get platform { | 67 Uri get platform { |
64 return options.containsKey("--compile-sdk") | 68 return options.containsKey("--compile-sdk") |
65 ? null | 69 ? null |
66 : options["--platform"] ?? Uri.base.resolve("platform.dill"); | 70 : options["--platform"] ?? Uri.base.resolve("platform.dill"); |
67 } | 71 } |
| 72 |
| 73 Set<String> get fatal { |
| 74 return new Set<String>.from(options["--fatal"] ?? <String>[]); |
| 75 } |
| 76 |
| 77 bool get areErrorsFatal => fatal.contains("errors"); |
| 78 |
| 79 bool get areWarningsFatal => fatal.contains("warnings"); |
| 80 |
| 81 bool get areNitsFatal => fatal.contains("nits"); |
| 82 |
| 83 static dynamic withGlobalOptions(String programName, List<String> arguments, |
| 84 dynamic f(CompilerContext context)) { |
| 85 return CompilerContext.withGlobalOptions( |
| 86 new CompilerCommandLine(programName, arguments), f); |
| 87 } |
| 88 |
| 89 static CompilerCommandLine forRootContext() { |
| 90 return new CompilerCommandLine("", [""]); |
| 91 } |
68 } | 92 } |
69 | 93 |
70 String computeUsage(String programName, bool verbose) { | 94 String computeUsage(String programName, bool verbose) { |
71 String basicUsage = "Usage: $programName [options] dartfile\n"; | 95 String basicUsage = "Usage: $programName [options] dartfile\n"; |
72 String summary; | 96 String summary; |
73 String options = (verbose ? allOptions : frequentOptions).trim(); | 97 String options = (verbose ? allOptions : frequentOptions).trim(); |
74 switch (programName) { | 98 switch (programName) { |
75 case "outline": | 99 case "outline": |
76 summary = | 100 summary = |
77 "Creates an outline of a Dart program in the Dill/Kernel IR format."; | 101 "Creates an outline of a Dart program in the Dill/Kernel IR format."; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 | 157 |
134 --verify | 158 --verify |
135 Check that the generated output is free of various problems. This is mostly | 159 Check that the generated output is free of various problems. This is mostly |
136 useful for developers of this compiler or Kernel transformations. | 160 useful for developers of this compiler or Kernel transformations. |
137 | 161 |
138 --dump-ir | 162 --dump-ir |
139 Print compiled libraries in Kernel source notation. | 163 Print compiled libraries in Kernel source notation. |
140 | 164 |
141 --compile-sdk | 165 --compile-sdk |
142 Compile the SDK from scratch instead of reading it from 'platform.dill'. | 166 Compile the SDK from scratch instead of reading it from 'platform.dill'. |
| 167 |
| 168 --fatal=errors |
| 169 --fatal=warnings |
| 170 --fatal=nits |
| 171 Makes messages of the given kinds fatal, that is, immediately stop the |
| 172 compiler with a non-zero exit-code. In --verbose mode, also display an |
| 173 internal stack trace from the compiler. Multiple kinds can be separated by |
| 174 commas, for example, --fatal=errors,warnings. |
143 """; | 175 """; |
OLD | NEW |