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

Unified Diff: pkg/compiler/lib/src/dart2js.dart

Issue 1162363004: Support Package Resolution Configuration files. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 | « pkg/compiler/lib/src/apiimpl.dart ('k') | pkg/compiler/lib/src/mirrors/analyze.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/dart2js.dart
diff --git a/pkg/compiler/lib/src/dart2js.dart b/pkg/compiler/lib/src/dart2js.dart
index 93b9a19112f50bc242189787544d1bda51df7692..9db2af57cf29119b7fbd38b927137eb6456363a9 100644
--- a/pkg/compiler/lib/src/dart2js.dart
+++ b/pkg/compiler/lib/src/dart2js.dart
@@ -19,6 +19,7 @@ import 'util/uri_extras.dart';
import 'util/util.dart' show stackTraceFilePrefix;
import 'util/command_line.dart';
import 'package:_internal/libraries.dart';
+import 'package:package_config/discovery.dart' show findPackages;
const String LIBRARY_ROOT = '../../../../../sdk';
const String OUTPUT_LANGUAGE_DART = 'Dart';
@@ -105,6 +106,7 @@ Future<api.CompilationResult> compile(List<String> argv) {
Uri libraryRoot = currentDirectory;
Uri out = currentDirectory.resolve('out.js');
Uri sourceMapOut = currentDirectory.resolve('out.js.map');
+ Uri packageConfig = null;
Uri packageRoot = null;
List<String> options = new List<String>();
bool explicitOut = false;
@@ -140,6 +142,10 @@ Future<api.CompilationResult> compile(List<String> argv) {
packageRoot = currentDirectory.resolve(extractPath(argument));
}
+ setPackageConfig(String argument) {
+ packageConfig = currentDirectory.resolve(extractPath(argument));
+ }
+
setOutput(Iterator<String> arguments) {
optionsImplyCompilation.add(arguments.current);
String path;
@@ -329,6 +335,7 @@ Future<api.CompilationResult> compile(List<String> argv) {
(_) => setTrustPrimitives(
'--trust-primitives')),
new OptionHandler(r'--help|/\?|/h', (_) => wantHelp = true),
+ new OptionHandler('--packages=.+', setPackageConfig),
new OptionHandler('--package-root=.+|-p.+', setPackageRoot),
new OptionHandler('--analyze-all', setAnalyzeAll),
new OptionHandler('--analyze-only', setAnalyzeOnly),
@@ -404,9 +411,8 @@ Future<api.CompilationResult> compile(List<String> argv) {
"checked mode.");
}
- Uri uri = currentDirectory.resolve(arguments[0]);
- if (packageRoot == null) {
- packageRoot = uri.resolve('./packages/');
+ if (packageRoot != null && packageConfig != null) {
+ helpAndFail("Cannot specify both '--package-root' and '--packages.");
}
if ((analyzeOnly || analyzeAll) && !optionsImplyCompilation.isEmpty) {
@@ -432,8 +438,6 @@ Future<api.CompilationResult> compile(List<String> argv) {
"combination with the '--output-type=dart' option.");
}
- diagnosticHandler.info('Package root is $packageRoot');
-
options.add('--out=$out');
options.add('--source-map=$sourceMapOut');
@@ -468,9 +472,10 @@ Future<api.CompilationResult> compile(List<String> argv) {
return result;
}
- return compileFunc(uri, libraryRoot, packageRoot,
- inputProvider, diagnosticHandler,
- options, outputProvider, environment)
+ Uri uri = currentDirectory.resolve(arguments[0]);
+ return compileFunc(uri, libraryRoot, packageRoot, inputProvider,
+ diagnosticHandler, options, outputProvider, environment,
+ packageConfig, findPackages)
.then(compilationDone);
}
@@ -552,7 +557,12 @@ Supported options:
Display version information.
-p<path>, --package-root=<path>
- Where to find packages, that is, "package:..." imports.
+ Where to find packages, that is, "package:..." imports. This option cannot
+ be used with --packages.
+
+ --packages=<path>
+ Path to the package resolution configuration file, which supplies a mapping
+ of package names to paths. This option cannot be used with --package-root.
--analyze-all
Analyze all code. Without this option, the compiler only analyzes
« no previous file with comments | « pkg/compiler/lib/src/apiimpl.dart ('k') | pkg/compiler/lib/src/mirrors/analyze.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698