| 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 exit; | 7 import 'dart:io' show exit; |
| 8 | 8 |
| 9 import 'command_line.dart' show CommandLine, deprecated_argumentError; | 9 import 'command_line.dart' show CommandLine, deprecated_argumentError; |
| 10 | 10 |
| 11 import 'compiler_context.dart' show CompilerContext; | 11 import 'compiler_context.dart' show CompilerContext; |
| 12 | 12 |
| 13 import 'package:kernel/target/targets.dart' | 13 import 'package:kernel/target/targets.dart' |
| 14 show Target, getTarget, TargetFlags, targets; | 14 show Target, getTarget, TargetFlags, targets; |
| 15 | 15 |
| 16 import 'fasta_codes.dart' |
| 17 show |
| 18 Message, |
| 19 messageFastaUsageLong, |
| 20 messageFastaUsageShort, |
| 21 templateUnspecified; |
| 22 |
| 16 const Map<String, dynamic> optionSpecification = const <String, dynamic>{ | 23 const Map<String, dynamic> optionSpecification = const <String, dynamic>{ |
| 17 "--compile-sdk": Uri, | 24 "--compile-sdk": Uri, |
| 18 "--fatal": ",", | 25 "--fatal": ",", |
| 19 "--output": Uri, | 26 "--output": Uri, |
| 20 "-o": Uri, | 27 "-o": Uri, |
| 21 "--packages": Uri, | 28 "--packages": Uri, |
| 22 "--platform": Uri, | 29 "--platform": Uri, |
| 23 "--sdk": Uri, | 30 "--sdk": Uri, |
| 24 "--target": String, | 31 "--target": String, |
| 25 "-t": String, | 32 "-t": String, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 dynamic f(CompilerContext context)) { | 128 dynamic f(CompilerContext context)) { |
| 122 return CompilerContext.withGlobalOptions( | 129 return CompilerContext.withGlobalOptions( |
| 123 new CompilerCommandLine(programName, arguments), f); | 130 new CompilerCommandLine(programName, arguments), f); |
| 124 } | 131 } |
| 125 | 132 |
| 126 static CompilerCommandLine forRootContext() { | 133 static CompilerCommandLine forRootContext() { |
| 127 return new CompilerCommandLine("", [""]); | 134 return new CompilerCommandLine("", [""]); |
| 128 } | 135 } |
| 129 } | 136 } |
| 130 | 137 |
| 131 String computeUsage(String programName, bool verbose) { | 138 Message computeUsage(String programName, bool verbose) { |
| 132 String basicUsage = "Usage: $programName [options] dartfile\n"; | 139 String basicUsage = "Usage: $programName [options] dartfile\n"; |
| 133 String summary; | 140 String summary; |
| 134 String options = (verbose ? allOptions : frequentOptions).trim(); | 141 String options = |
| 142 (verbose ? messageFastaUsageLong.message : messageFastaUsageShort.message) |
| 143 .trim(); |
| 135 switch (programName) { | 144 switch (programName) { |
| 136 case "outline": | 145 case "outline": |
| 137 summary = | 146 summary = |
| 138 "Creates an outline of a Dart program in the Dill/Kernel IR format."; | 147 "Creates an outline of a Dart program in the Dill/Kernel IR format."; |
| 139 break; | 148 break; |
| 140 | 149 |
| 141 case "compile": | 150 case "compile": |
| 142 summary = "Compiles a Dart program to the Dill/Kernel IR format."; | 151 summary = "Compiles a Dart program to the Dill/Kernel IR format."; |
| 143 break; | 152 break; |
| 144 | 153 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 156 basicUsage = "Usage: $programName [options] patched_sdk fullOutput " | 165 basicUsage = "Usage: $programName [options] patched_sdk fullOutput " |
| 157 "outlineOutput\n"; | 166 "outlineOutput\n"; |
| 158 } | 167 } |
| 159 StringBuffer sb = new StringBuffer(basicUsage); | 168 StringBuffer sb = new StringBuffer(basicUsage); |
| 160 if (summary != null) { | 169 if (summary != null) { |
| 161 sb.writeln(); | 170 sb.writeln(); |
| 162 sb.writeln(summary); | 171 sb.writeln(summary); |
| 163 sb.writeln(); | 172 sb.writeln(); |
| 164 } | 173 } |
| 165 sb.write(options); | 174 sb.write(options); |
| 166 return "$sb"; | 175 // TODO(ahe): Don't use [templateUnspecified]. |
| 176 return templateUnspecified.withArguments("$sb"); |
| 167 } | 177 } |
| 168 | |
| 169 const String frequentOptions = """ | |
| 170 Frequently used options: | |
| 171 | |
| 172 -o <file> Generate the output into <file>. | |
| 173 -h Display this message (add -v for information about all options). | |
| 174 """; | |
| 175 | |
| 176 const String allOptions = """ | |
| 177 Supported options: | |
| 178 | |
| 179 -o <file>, --output=<file> | |
| 180 Generate the output into <file>. | |
| 181 | |
| 182 -h, /h, /?, --help | |
| 183 Display this message (add -v for information about all options). | |
| 184 | |
| 185 -v, --verbose | |
| 186 Display verbose information. | |
| 187 | |
| 188 -- | |
| 189 Stop option parsing, the rest of the command line is assumed to be | |
| 190 file names or arguments to the Dart program. | |
| 191 | |
| 192 --packages=<file> | |
| 193 Use package resolution configuration <file>, which should contain a mapping | |
| 194 of package names to paths. | |
| 195 | |
| 196 --platform=<file> | |
| 197 Read the SDK platform from <file>, which should be in Dill/Kernel IR format | |
| 198 and contain the Dart SDK. | |
| 199 | |
| 200 --target=none|vm|vmcc|vmreify|flutter | |
| 201 Specify the target configuration. | |
| 202 | |
| 203 --verify | |
| 204 Check that the generated output is free of various problems. This is mostly | |
| 205 useful for developers of this compiler or Kernel transformations. | |
| 206 | |
| 207 --dump-ir | |
| 208 Print compiled libraries in Kernel source notation. | |
| 209 | |
| 210 --exclude-source | |
| 211 Do not include source code in the dill file. | |
| 212 | |
| 213 --compile-sdk=<patched_sdk> | |
| 214 Compile the SDK from scratch instead of reading it from 'platform.dill'. | |
| 215 | |
| 216 --sdk=<patched_sdk> | |
| 217 Location of the SDK sources for use when compiling additional platform | |
| 218 libraries. | |
| 219 | |
| 220 --fatal=errors | |
| 221 --fatal=warnings | |
| 222 --fatal=nits | |
| 223 Makes messages of the given kinds fatal, that is, immediately stop the | |
| 224 compiler with a non-zero exit-code. In --verbose mode, also display an | |
| 225 internal stack trace from the compiler. Multiple kinds can be separated by | |
| 226 commas, for example, --fatal=errors,warnings. | |
| 227 """; | |
| OLD | NEW |