Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Unified Diff: lib/src/options.dart

Issue 1150143006: fixes #201, add support for custom URL mapping (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: remove options change Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/dependency_graph.dart ('k') | lib/src/testing.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/options.dart
diff --git a/lib/src/options.dart b/lib/src/options.dart
index 4abc5a0c822c03faa96002ba79accabdcec9ab99..e04857aae0fef8475f08308ee3324980d6ca5b9f 100644
--- a/lib/src/options.dart
+++ b/lib/src/options.dart
@@ -236,6 +236,9 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
/// package (if we can infer where that is located).
final String runtimeDir;
+ /// Custom URI mappings, such as "dart:foo" -> "path/to/foo.dart"
+ final Map<String, String> customUrlMappings;
+
CompilerOptions({this.allowConstCasts: true, this.checkSdk: false,
this.dumpInfo: false, this.dumpInfoFile, this.dumpSrcDir,
this.forceCompile: false, this.formatOutput: false,
@@ -254,12 +257,14 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
this.emitSourceMaps: true, this.entryPointFile: null,
this.serverMode: false, this.useImplicitHtml: false,
this.enableHashing: false, this.host: 'localhost', this.port: 8080,
- this.runtimeDir});
+ this.runtimeDir, this.customUrlMappings: const {}});
}
/// Parses options from the command-line
CompilerOptions parseOptions(List<String> argv) {
ArgResults args = argParser.parse(argv);
+ bool showUsage = args['help'];
+
var serverMode = args['server'];
var enableHashing = args['hashing'];
if (enableHashing == null) {
@@ -289,6 +294,16 @@ CompilerOptions parseOptions(List<String> argv) {
var dumpInfo = args['dump-info'];
if (dumpInfo == null) dumpInfo = serverMode;
+ var customUrlMappings = <String, String>{};
+ for (var mapping in args['url-mapping']) {
+ var splitMapping = mapping.split(',');
+ if (splitMapping.length != 2) {
+ showUsage = true;
+ continue;
+ }
+ customUrlMappings[splitMapping[0]] = splitMapping[1];
+ }
+
var entryPointFile = args.rest.length == 0 ? null : args.rest.first;
return new CompilerOptions(
@@ -306,6 +321,7 @@ CompilerOptions parseOptions(List<String> argv) {
covariantGenerics: args['covariant-generics'],
relaxedCasts: args['relaxed-casts'],
useColors: useColors,
+ customUrlMappings: customUrlMappings,
useMultiPackage: args['use-multi-package'],
packageRoot: args['package-root'],
packagePaths: args['package-paths'].split(','),
@@ -319,7 +335,7 @@ CompilerOptions parseOptions(List<String> argv) {
onlyInferConstsAndFinalFields: args['infer-only-finals'],
nonnullableTypes: optionsToList(args['nonnullable'],
defaultValue: TypeOptions.NONNULLABLE_TYPES),
- help: args['help'],
+ help: showUsage,
useMockSdk: args['mock-sdk'],
dartSdkPath: sdkPath,
logLevel: logLevel,
@@ -380,6 +396,11 @@ final ArgParser argParser = new ArgParser()
abbr: 'p',
help: 'Package root to resolve "package:" imports',
defaultsTo: 'packages/')
+ ..addOption('url-mapping',
+ help: '--url-mapping=libraryUri,/path/to/library.dart uses library.dart\n'
+ 'as the source for an import of of "libraryUri".',
+ allowMultiple: true,
+ splitCommas: false)
..addFlag('use-multi-package',
help: 'Whether to use the multi-package resolver for "package:" imports',
defaultsTo: false)
« no previous file with comments | « lib/src/dependency_graph.dart ('k') | lib/src/testing.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698