[kernel] Add target for Flutter on Fuchsia.
Change-Id: I7ab8e989e1e2038565e1d04a1c8f8ce880328ed8
Reviewed-on: https://dart-review.googlesource.com/47500
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
diff --git a/pkg/front_end/lib/src/base/libraries_specification.dart b/pkg/front_end/lib/src/base/libraries_specification.dart
index 6ddc5c5..28c95fe 100644
--- a/pkg/front_end/lib/src/base/libraries_specification.dart
+++ b/pkg/front_end/lib/src/base/libraries_specification.dart
@@ -106,10 +106,16 @@
const LibrariesSpecification(
[this._targets = const <String, TargetLibrariesSpecification>{}]);
- /// The library specification for a given [target], or null if none is
+ /// The library specification for a given [target], or throws if none is
/// available.
- TargetLibrariesSpecification specificationFor(String target) =>
- _targets[target];
+ TargetLibrariesSpecification specificationFor(String target) {
+ var targetSpec = _targets[target];
+ if (targetSpec == null) {
+ throw new LibrariesSpecificationException(
+ 'No library specification for target "$target"');
+ }
+ return targetSpec;
+ }
/// Parse the given [json] as a library specification, resolving any relative
/// paths from [baseUri].
diff --git a/pkg/front_end/tool/_fasta/compile_platform.dart b/pkg/front_end/tool/_fasta/compile_platform.dart
index 5629776..d541fd7 100644
--- a/pkg/front_end/tool/_fasta/compile_platform.dart
+++ b/pkg/front_end/tool/_fasta/compile_platform.dart
@@ -9,7 +9,10 @@
import 'dart:io' show File, Platform, exitCode;
import 'package:compiler/src/kernel/dart2js_target.dart' show Dart2jsTarget;
-import 'package:vm/target/runner.dart' show RunnerTarget;
+
+import 'package:vm/target/dart_runner.dart' show DartRunnerTarget;
+
+import 'package:vm/target/flutter_runner.dart' show FlutterRunnerTarget;
import 'package:kernel/target/targets.dart' show TargetFlags, targets;
@@ -36,7 +39,9 @@
Future main(List<String> arguments) async {
targets["dart2js"] = (TargetFlags flags) => new Dart2jsTarget(flags);
- targets["runner"] = (TargetFlags flags) => new RunnerTarget(flags);
+ targets["dart_runner"] = (TargetFlags flags) => new DartRunnerTarget(flags);
+ targets["flutter_runner"] =
+ (TargetFlags flags) => new FlutterRunnerTarget(flags);
for (int i = 0; i < iterations; i++) {
if (i > 0) {
print("\n");
diff --git a/pkg/vm/lib/target/runner.dart b/pkg/vm/lib/target/dart_runner.dart
similarity index 83%
rename from pkg/vm/lib/target/runner.dart
rename to pkg/vm/lib/target/dart_runner.dart
index 3b7ce0c..fe75c94 100644
--- a/pkg/vm/lib/target/runner.dart
+++ b/pkg/vm/lib/target/dart_runner.dart
@@ -1,16 +1,19 @@
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library kernel.target.runner;
+library kernel.target.dart_runner;
import 'package:kernel/target/targets.dart';
import 'package:kernel/target/vm.dart' show VmTarget;
-class RunnerTarget extends VmTarget {
- RunnerTarget(TargetFlags flags) : super(flags);
+class DartRunnerTarget extends VmTarget {
+ DartRunnerTarget(TargetFlags flags) : super(flags);
@override
- String get name => 'runner';
+ String get name => 'dart_runner';
+
+ @override
+ bool get enableSuperMixins => true;
// This is the order that bootstrap libraries are loaded according to
// `runtime/vm/object_store.h`.
diff --git a/pkg/vm/lib/target/runner.dart b/pkg/vm/lib/target/flutter_runner.dart
similarity index 76%
copy from pkg/vm/lib/target/runner.dart
copy to pkg/vm/lib/target/flutter_runner.dart
index 3b7ce0c..8878c01 100644
--- a/pkg/vm/lib/target/runner.dart
+++ b/pkg/vm/lib/target/flutter_runner.dart
@@ -1,16 +1,19 @@
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library kernel.target.runner;
+library kernel.target.flutter_runner;
import 'package:kernel/target/targets.dart';
import 'package:kernel/target/vm.dart' show VmTarget;
-class RunnerTarget extends VmTarget {
- RunnerTarget(TargetFlags flags) : super(flags);
+class FlutterRunnerTarget extends VmTarget {
+ FlutterRunnerTarget(TargetFlags flags) : super(flags);
@override
- String get name => 'runner';
+ String get name => 'flutter_runner';
+
+ @override
+ bool get enableSuperMixins => true;
// This is the order that bootstrap libraries are loaded according to
// `runtime/vm/object_store.h`.
@@ -33,10 +36,12 @@
'dart:nativewrappers',
'dart:io',
- // Required for dart_runner.
+ // Required for flutter_runner.
'dart:fuchsia.builtin',
'dart:zircon',
'dart:fuchsia',
'dart:vmservice_io',
+ 'dart:ui',
+ 'dart:mozart.internal',
];
}
diff --git a/tools/copy_tree.py b/tools/copy_tree.py
index a9925b4..5d72750 100755
--- a/tools/copy_tree.py
+++ b/tools/copy_tree.py
@@ -82,7 +82,7 @@
errors.append((srcname, dstname, str(why)))
# catch the Error from the recursive CopyTree so that we can
# continue with other files
- except Error as err:
+ except Exception as err:
errors.extend(err.args[0])
try:
shutil.copystat(src, dst)
diff --git a/tools/patch_sdk.dart b/tools/patch_sdk.dart
index 9dac1deb..5d1cf86 100644
--- a/tools/patch_sdk.dart
+++ b/tools/patch_sdk.dart
@@ -29,7 +29,6 @@
import 'package:kernel/target/targets.dart';
import 'package:kernel/target/vm.dart' show VmTarget;
import 'package:kernel/target/flutter.dart' show FlutterTarget;
-import 'package:vm/target/runner.dart' show RunnerTarget;
import 'package:compiler/src/kernel/dart2js_target.dart' show Dart2jsTarget;
/// Set of input files that were read by this script to generate patched SDK.
@@ -134,10 +133,6 @@
target = new VmTarget(flags);
break;
- case 'runner':
- target = new RunnerTarget(flags);
- break;
-
case 'flutter':
case 'flutter_release':
target = new FlutterTarget(flags);