| Index: pkg/dev_compiler/tool/build_pkgs.dart
|
| diff --git a/pkg/dev_compiler/tool/build_pkgs.dart b/pkg/dev_compiler/tool/build_pkgs.dart
|
| index 04be68b647e7ced32845a0d0f21d402e6126df19..df46e3f5cf3284e925ea017fd6679a2a3f8eb163 100755
|
| --- a/pkg/dev_compiler/tool/build_pkgs.dart
|
| +++ b/pkg/dev_compiler/tool/build_pkgs.dart
|
| @@ -1,20 +1,31 @@
|
| #!/usr/bin/env dart
|
| import 'dart:io';
|
|
|
| +import 'package:path/path.dart' as p;
|
| +
|
| import 'package:dev_compiler/src/compiler/command.dart';
|
|
|
| -/// Compiles the packages that the DDC tests use to JS into:
|
| -///
|
| -/// gen/codegen_output/pkg/...
|
| +final String scriptDirectory = p.dirname(p.fromUri(Platform.script));
|
| +String outputDirectory;
|
| +
|
| +/// Compiles the packages that the DDC tests use to JS into the given output
|
| +/// directory. Usage:
|
| ///
|
| -/// Assumes the working directory is pkg/dev_compiler.
|
| +/// dart build_pkgs.dart <output_dir> [travis]
|
| ///
|
| -/// If no arguments are passed, builds the all of the modules tested on Travis.
|
| -/// If "test" is passed, only builds the modules needed by the tests.
|
| +/// If "travis" is passed, builds the all of the modules tested on Travis.
|
| +/// Otherwise, only builds the modules needed by the tests.
|
| void main(List<String> arguments) {
|
| - var test = arguments.length == 1 && arguments[0] == 'test';
|
| + var isTravis = arguments.isNotEmpty && arguments.last == "travis";
|
| + if (isTravis) arguments.removeLast();
|
| +
|
| + if (arguments.length != 1) {
|
| + print("Usage: dart build_pkgs.dart <output_dir> [travis]");
|
| + exit(1);
|
| + }
|
|
|
| - new Directory("gen/codegen_output/pkg").createSync(recursive: true);
|
| + outputDirectory = arguments[0];
|
| + new Directory(outputDirectory).createSync(recursive: true);
|
|
|
| // Build leaf packages. These have no other package dependencies.
|
|
|
| @@ -23,7 +34,7 @@ void main(List<String> arguments) {
|
| compileModule('expect', libs: ['minitest']);
|
| compileModule('js', libs: ['js_util']);
|
| compileModule('meta');
|
| - if (!test) {
|
| + if (isTravis) {
|
| compileModule('lookup_map');
|
| compileModule('microlytics', libs: ['html_channels']);
|
| compileModule('typed_mock');
|
| @@ -33,7 +44,7 @@ void main(List<String> arguments) {
|
| compileModule('collection');
|
| compileModule('matcher');
|
| compileModule('path');
|
| - if (!test) {
|
| + if (isTravis) {
|
| compileModule('args', libs: ['command_runner']);
|
| compileModule('charcode');
|
| compileModule('fixnum');
|
| @@ -49,11 +60,11 @@ void main(List<String> arguments) {
|
|
|
| // Composite packages with dependencies.
|
| compileModule('stack_trace', deps: ['path']);
|
| - if (!test) {
|
| + if (isTravis) {
|
| compileModule('async', deps: ['collection']);
|
| }
|
|
|
| - if (test) {
|
| + if (!isTravis) {
|
| compileModule('unittest',
|
| deps: ['matcher', 'path', 'stack_trace'],
|
| libs: ['html_config', 'html_individual_config', 'html_enhanced_config'],
|
| @@ -65,9 +76,10 @@ void main(List<String> arguments) {
|
| /// [libs] and [deps] on other modules.
|
| void compileModule(String module,
|
| {List<String> libs, List<String> deps, bool unsafeForceCompile: false}) {
|
| + var sdkSummary = p.join(scriptDirectory, "../lib/sdk/ddc_sdk.sum");
|
| var args = [
|
| - '--dart-sdk-summary=lib/sdk/ddc_sdk.sum',
|
| - '-ogen/codegen_output/pkg/$module.js'
|
| + '--dart-sdk-summary=$sdkSummary',
|
| + '-o${outputDirectory}/$module.js'
|
| ];
|
|
|
| // There is always a library that matches the module.
|
| @@ -83,7 +95,7 @@ void compileModule(String module,
|
| // Add summaries for any modules this depends on.
|
| if (deps != null) {
|
| for (var dep in deps) {
|
| - args.add('-sgen/codegen_output/pkg/$dep.sum');
|
| + args.add('-s${outputDirectory}/$dep.sum');
|
| }
|
| }
|
|
|
| @@ -96,9 +108,10 @@ void compileModule(String module,
|
| // but I'm not sure how they'll affect the other non-DDC tests. For now, just
|
| // use ours.
|
| if (module == 'async_helper') {
|
| - args.add('--url-mapping=package:async_helper/async_helper.dart,'
|
| - 'test/codegen/async_helper.dart');
|
| + args.add('--url-mapping=package:async_helper/async_helper.dart,' +
|
| + p.join(scriptDirectory, "../test/codegen/async_helper.dart"));
|
| }
|
|
|
| - compile(args);
|
| + var exitCode = compile(args);
|
| + if (exitCode != 0) exit(exitCode);
|
| }
|
|
|