| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 /// Set of flags and options passed to the compiler | 5 /// Set of flags and options passed to the compiler |
| 6 library dev_compiler.src.options; | 6 library dev_compiler.src.options; |
| 7 | 7 |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:args/args.dart'; | 10 import 'package:args/args.dart'; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 /// Whether to check the sdk libraries. | 110 /// Whether to check the sdk libraries. |
| 111 final bool checkSdk; | 111 final bool checkSdk; |
| 112 | 112 |
| 113 /// Whether to dump summary information on the console. | 113 /// Whether to dump summary information on the console. |
| 114 final bool dumpInfo; | 114 final bool dumpInfo; |
| 115 | 115 |
| 116 /// If not null, path to a file that will store a json representation of the | 116 /// If not null, path to a file that will store a json representation of the |
| 117 /// summary information (only used if [dumpInfo] is true). | 117 /// summary information (only used if [dumpInfo] is true). |
| 118 final String dumpInfoFile; | 118 final String dumpInfoFile; |
| 119 | 119 |
| 120 /// Directory where to dump the orignal but formatted Dart sources. This is | |
| 121 /// mainly used to make it easier to compare input and output files. | |
| 122 final String dumpSrcDir; | |
| 123 | |
| 124 /// Whether to force compilation of code with static errors. | 120 /// Whether to force compilation of code with static errors. |
| 125 final bool forceCompile; | 121 final bool forceCompile; |
| 126 | 122 |
| 127 /// Whether to use a cheap formatter instead of dart_style. | |
| 128 // TODO(jmesserly): old comment said this might not be a semantically correct | |
| 129 // formatter. Why not? | |
| 130 final bool formatOutput; | |
| 131 | |
| 132 /// Output directory for generated code. | 123 /// Output directory for generated code. |
| 133 final String outputDir; | 124 final String outputDir; |
| 134 | 125 |
| 135 /// Whether to emit Dart output (false means to emit JS output). | |
| 136 final bool outputDart; | |
| 137 | |
| 138 /// Whether to use colors when interacting on the console. | 126 /// Whether to use colors when interacting on the console. |
| 139 final bool useColors; | 127 final bool useColors; |
| 140 | 128 |
| 141 /// Whether the user asked for help. | 129 /// Whether the user asked for help. |
| 142 final bool help; | 130 final bool help; |
| 143 | 131 |
| 144 /// Whether to use a mock-sdk during compilation. | 132 /// Whether to use a mock-sdk during compilation. |
| 145 final bool useMockSdk; | 133 final bool useMockSdk; |
| 146 | 134 |
| 147 /// Path to the dart-sdk. Null if `useMockSdk` is true or if the path couldn't | 135 /// Path to the dart-sdk. Null if `useMockSdk` is true or if the path couldn't |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 | 221 |
| 234 /// Location for runtime files, such as `dart_runtime.js`. By default this is | 222 /// Location for runtime files, such as `dart_runtime.js`. By default this is |
| 235 /// inferred to be under `lib/runtime/` in the location of the `dev_compiler` | 223 /// inferred to be under `lib/runtime/` in the location of the `dev_compiler` |
| 236 /// package (if we can infer where that is located). | 224 /// package (if we can infer where that is located). |
| 237 final String runtimeDir; | 225 final String runtimeDir; |
| 238 | 226 |
| 239 /// Custom URI mappings, such as "dart:foo" -> "path/to/foo.dart" | 227 /// Custom URI mappings, such as "dart:foo" -> "path/to/foo.dart" |
| 240 final Map<String, String> customUrlMappings; | 228 final Map<String, String> customUrlMappings; |
| 241 | 229 |
| 242 CompilerOptions({this.allowConstCasts: true, this.checkSdk: false, | 230 CompilerOptions({this.allowConstCasts: true, this.checkSdk: false, |
| 243 this.dumpInfo: false, this.dumpInfoFile, this.dumpSrcDir, | 231 this.dumpInfo: false, this.dumpInfoFile, this.forceCompile: false, |
| 244 this.forceCompile: false, this.formatOutput: false, | |
| 245 this.ignoreTypes: false, | 232 this.ignoreTypes: false, |
| 246 this.wrapClosures: RulesOptions.wrapClosuresDefault, this.outputDir, | 233 this.wrapClosures: RulesOptions.wrapClosuresDefault, this.outputDir, |
| 247 this.outputDart: false, this.useColors: true, | 234 this.useColors: true, this.covariantGenerics: true, |
| 248 this.covariantGenerics: true, this.relaxedCasts: true, | 235 this.relaxedCasts: true, this.useMultiPackage: false, |
| 249 this.useMultiPackage: false, this.packageRoot: 'packages/', | 236 this.packageRoot: 'packages/', this.packagePaths: const <String>[], |
| 250 this.packagePaths: const <String>[], this.resources: const <String>[], | 237 this.resources: const <String>[], |
| 251 this.inferDownwards: RulesOptions.inferDownwardsDefault, | 238 this.inferDownwards: RulesOptions.inferDownwardsDefault, |
| 252 this.inferFromOverrides: ResolverOptions.inferFromOverridesDefault, | 239 this.inferFromOverrides: ResolverOptions.inferFromOverridesDefault, |
| 253 this.inferTransitively: ResolverOptions.inferTransitivelyDefault, | 240 this.inferTransitively: ResolverOptions.inferTransitivelyDefault, |
| 254 this.onlyInferConstsAndFinalFields: ResolverOptions.onlyInferConstAndFinal
FieldsDefault, | 241 this.onlyInferConstsAndFinalFields: ResolverOptions.onlyInferConstAndFinal
FieldsDefault, |
| 255 this.nonnullableTypes: TypeOptions.NONNULLABLE_TYPES, this.help: false, | 242 this.nonnullableTypes: TypeOptions.NONNULLABLE_TYPES, this.help: false, |
| 256 this.useMockSdk: false, this.dartSdkPath, this.logLevel: Level.SEVERE, | 243 this.useMockSdk: false, this.dartSdkPath, this.logLevel: Level.SEVERE, |
| 257 this.emitSourceMaps: true, this.entryPointFile: null, | 244 this.emitSourceMaps: true, this.entryPointFile: null, |
| 258 this.serverMode: false, this.useImplicitHtml: false, | 245 this.serverMode: false, this.useImplicitHtml: false, |
| 259 this.enableHashing: false, this.host: 'localhost', this.port: 8080, | 246 this.enableHashing: false, this.host: 'localhost', this.port: 8080, |
| 260 this.runtimeDir, this.customUrlMappings: const {}}); | 247 this.runtimeDir, this.customUrlMappings: const {}}); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 customUrlMappings[splitMapping[0]] = splitMapping[1]; | 291 customUrlMappings[splitMapping[0]] = splitMapping[1]; |
| 305 } | 292 } |
| 306 | 293 |
| 307 var entryPointFile = args.rest.length == 0 ? null : args.rest.first; | 294 var entryPointFile = args.rest.length == 0 ? null : args.rest.first; |
| 308 | 295 |
| 309 return new CompilerOptions( | 296 return new CompilerOptions( |
| 310 allowConstCasts: args['allow-const-casts'], | 297 allowConstCasts: args['allow-const-casts'], |
| 311 checkSdk: args['sdk-check'], | 298 checkSdk: args['sdk-check'], |
| 312 dumpInfo: dumpInfo, | 299 dumpInfo: dumpInfo, |
| 313 dumpInfoFile: args['dump-info-file'], | 300 dumpInfoFile: args['dump-info-file'], |
| 314 dumpSrcDir: args['dump-src-to'], | |
| 315 forceCompile: args['force-compile'] || serverMode, | 301 forceCompile: args['force-compile'] || serverMode, |
| 316 formatOutput: args['dart-gen-fmt'], | |
| 317 ignoreTypes: args['ignore-types'], | 302 ignoreTypes: args['ignore-types'], |
| 318 wrapClosures: args['wrap-closures'], | 303 wrapClosures: args['wrap-closures'], |
| 319 outputDart: args['dart-gen'], | |
| 320 outputDir: outputDir, | 304 outputDir: outputDir, |
| 321 covariantGenerics: args['covariant-generics'], | 305 covariantGenerics: args['covariant-generics'], |
| 322 relaxedCasts: args['relaxed-casts'], | 306 relaxedCasts: args['relaxed-casts'], |
| 323 useColors: useColors, | 307 useColors: useColors, |
| 324 customUrlMappings: customUrlMappings, | 308 customUrlMappings: customUrlMappings, |
| 325 useMultiPackage: args['use-multi-package'], | 309 useMultiPackage: args['use-multi-package'], |
| 326 packageRoot: args['package-root'], | 310 packageRoot: args['package-root'], |
| 327 packagePaths: args['package-paths'].split(','), | 311 packagePaths: args['package-paths'].split(','), |
| 328 resources: args['resources'] | 312 resources: args['resources'] |
| 329 .split(',') | 313 .split(',') |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 ..addFlag('infer-transitively', | 364 ..addFlag('infer-transitively', |
| 381 help: 'Infer consts/fields from definitions in other libraries', | 365 help: 'Infer consts/fields from definitions in other libraries', |
| 382 defaultsTo: ResolverOptions.inferTransitivelyDefault) | 366 defaultsTo: ResolverOptions.inferTransitivelyDefault) |
| 383 ..addFlag('infer-only-finals', | 367 ..addFlag('infer-only-finals', |
| 384 help: 'Do not infer non-const or non-final fields', | 368 help: 'Do not infer non-const or non-final fields', |
| 385 defaultsTo: ResolverOptions.onlyInferConstAndFinalFieldsDefault) | 369 defaultsTo: ResolverOptions.onlyInferConstAndFinalFieldsDefault) |
| 386 | 370 |
| 387 // input/output options | 371 // input/output options |
| 388 ..addOption('out', abbr: 'o', help: 'Output directory', defaultsTo: null) | 372 ..addOption('out', abbr: 'o', help: 'Output directory', defaultsTo: null) |
| 389 ..addOption('dart-sdk', help: 'Dart SDK Path', defaultsTo: null) | 373 ..addOption('dart-sdk', help: 'Dart SDK Path', defaultsTo: null) |
| 390 ..addFlag('dart-gen', | |
| 391 abbr: 'd', help: 'Generate dart output', defaultsTo: false) | |
| 392 ..addFlag('dart-gen-fmt', | |
| 393 help: 'Generate readable dart output', defaultsTo: true) | |
| 394 ..addOption('dump-src-to', help: 'Dump dart src code', defaultsTo: null) | 374 ..addOption('dump-src-to', help: 'Dump dart src code', defaultsTo: null) |
| 395 ..addOption('package-root', | 375 ..addOption('package-root', |
| 396 abbr: 'p', | 376 abbr: 'p', |
| 397 help: 'Package root to resolve "package:" imports', | 377 help: 'Package root to resolve "package:" imports', |
| 398 defaultsTo: 'packages/') | 378 defaultsTo: 'packages/') |
| 399 ..addOption('url-mapping', | 379 ..addOption('url-mapping', |
| 400 help: '--url-mapping=libraryUri,/path/to/library.dart uses library.dart\n' | 380 help: '--url-mapping=libraryUri,/path/to/library.dart uses library.dart\n' |
| 401 'as the source for an import of of "libraryUri".', | 381 'as the source for an import of of "libraryUri".', |
| 402 allowMultiple: true, | 382 allowMultiple: true, |
| 403 splitCommas: false) | 383 splitCommas: false) |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 // The pub-cache directory is two levels up, but we verify that the layout | 459 // The pub-cache directory is two levels up, but we verify that the layout |
| 480 // looks correct. | 460 // looks correct. |
| 481 if (path.basename(dir) != 'dev_compiler') return null; | 461 if (path.basename(dir) != 'dev_compiler') return null; |
| 482 dir = path.dirname(dir); | 462 dir = path.dirname(dir); |
| 483 if (path.basename(dir) != 'global_packages') return null; | 463 if (path.basename(dir) != 'global_packages') return null; |
| 484 dir = path.dirname(dir); | 464 dir = path.dirname(dir); |
| 485 return path.join(dir, cacheDir, 'lib', 'runtime'); | 465 return path.join(dir, cacheDir, 'lib', 'runtime'); |
| 486 } | 466 } |
| 487 return null; | 467 return null; |
| 488 } | 468 } |
| OLD | NEW |