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

Side by Side Diff: tool/global_compile.dart

Issue 2188033002: fix #607, add support for package config file Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: remove obsolete todo Created 4 years, 4 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 unified diff | Download patch
« lib/src/analyzer/context.dart ('K') | « test/worker/worker_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env dart 1 #!/usr/bin/env dart
2 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 5
6 import 'dart:async'; 6 import 'dart:async';
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:analyzer/analyzer.dart' 9 import 'package:analyzer/analyzer.dart'
10 show 10 show
(...skipping 10 matching lines...) Expand all
21 21
22 void main(List<String> args) { 22 void main(List<String> args) {
23 // Parse flags. 23 // Parse flags.
24 var parser = new ArgParser() 24 var parser = new ArgParser()
25 ..addOption('out', 25 ..addOption('out',
26 help: 'Output file (defaults to "out.js")', 26 help: 'Output file (defaults to "out.js")',
27 abbr: 'o', 27 abbr: 'o',
28 defaultsTo: 'out.js') 28 defaultsTo: 'out.js')
29 ..addFlag('unsafe-force-compile', 29 ..addFlag('unsafe-force-compile',
30 help: 'Generate code with undefined behavior', negatable: false) 30 help: 'Generate code with undefined behavior', negatable: false)
31 ..addOption('packages',
32 help:
33 'Path to the package resolution configuration file, which supplies '
34 'a mapping of package names to paths. This option cannot be '
35 'used with --package-root.')
31 ..addOption('package-root', 36 ..addOption('package-root',
32 help: 'Directory containing packages',
33 abbr: 'p', 37 abbr: 'p',
34 defaultsTo: 'packages/') 38 help: 'Path to a package root directory (deprecated). This option '
39 'cannot be used with --packages.')
35 ..addFlag('log', help: 'Show individual build commands') 40 ..addFlag('log', help: 'Show individual build commands')
36 ..addOption('tmp', 41 ..addOption('tmp',
37 help: 42 help:
38 'Directory for temporary artifacts (defaults to a system tmp directo ry)'); 43 'Directory for temporary artifacts (defaults to a system tmp directo ry)');
39 44
40 var options = parser.parse(args); 45 var options = parser.parse(args);
41 if (options.rest.length != 1) { 46 if (options.rest.length != 1) {
42 throw 'Expected a single dart entrypoint.'; 47 throw 'Expected a single dart entrypoint.';
43 } 48 }
44 var entry = options.rest.first; 49 var entry = options.rest.first;
45 var outfile = options['out'] as String; 50 var outfile = options['out'] as String;
51 var packages = options['packages'] as String;
46 var packageRoot = options['package-root'] as String; 52 var packageRoot = options['package-root'] as String;
47 var unsafe = options['unsafe-force-compile'] as bool; 53 var unsafe = options['unsafe-force-compile'] as bool;
48 var log = options['log'] as bool; 54 var log = options['log'] as bool;
49 var tmp = options['tmp'] as String; 55 var tmp = options['tmp'] as String;
50 56
51 // Build an invocation to dartdevc 57 // Build an invocation to dartdevc
52 var dartPath = Platform.resolvedExecutable; 58 var dartPath = Platform.resolvedExecutable;
53 var ddcPath = path.dirname(path.dirname(Platform.script.toFilePath())); 59 var ddcPath = path.dirname(path.dirname(Platform.script.toFilePath()));
54 var template = [ 60 var template = [
55 '$ddcPath/bin/dartdevc.dart', 61 '$ddcPath/bin/dartdevc.dart',
56 'compile', 62 'compile',
57 '--no-source-map', // Invalid as we're just concatenating files below 63 '--no-source-map', // Invalid as we're just concatenating files below
58 '-p',
59 packageRoot
60 ]; 64 ];
65 if (packages != null) {
66 template.addAll(['--packages', packages]);
67 }
68 if (packageRoot != null) {
69 template.addAll(['--package-root', packageRoot]);
70 }
61 if (unsafe) { 71 if (unsafe) {
62 template.add('--unsafe-force-compile'); 72 template.add('--unsafe-force-compile');
63 } 73 }
64 74
65 // Compute the transitive closure 75 // Compute the transitive closure
66 var total = new Stopwatch()..start(); 76 var total = new Stopwatch()..start();
67 var partial = new Stopwatch()..start(); 77 var partial = new Stopwatch()..start();
68 78
69 // TODO(vsm): We're using the analyzer just to compute the import/export/part 79 // TODO(vsm): We're using the analyzer just to compute the import/export/part
70 // dependence graph. This is expensive. Is there a lighterweight way to do 80 // dependence graph. This is expensive. Is there a lighterweight way to do
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 var uri = _resolveDirective(d); 282 var uri = _resolveDirective(d);
273 processDependence(entryPoint, canonicalize(uri, entryDir)); 283 processDependence(entryPoint, canonicalize(uri, entryDir));
274 transitiveFiles(uri, entryDir, packageRoot); 284 transitiveFiles(uri, entryDir, packageRoot);
275 } else if (d is PartDirective) { 285 } else if (d is PartDirective) {
276 var uri = _resolveDirective(d); 286 var uri = _resolveDirective(d);
277 processFile(canonicalize(uri, entryDir)); 287 processFile(canonicalize(uri, entryDir));
278 } 288 }
279 } 289 }
280 } 290 }
281 } 291 }
OLDNEW
« lib/src/analyzer/context.dart ('K') | « test/worker/worker_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698