[vm] Fix frontend_server after VmTarget move.
frontend_server uses getTarget - which means we need to call
installAdditionalTargets to ensure that flutter & vm targets are
properly installed.
Change-Id: I00a3d06f76c3bd31fe4e27e3947abea4c7883c44
Reviewed-on: https://dart-review.googlesource.com/69464
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
diff --git a/pkg/vm/lib/frontend_server.dart b/pkg/vm/lib/frontend_server.dart
index 992dccd..3a236e7 100644
--- a/pkg/vm/lib/frontend_server.dart
+++ b/pkg/vm/lib/frontend_server.dart
@@ -28,9 +28,11 @@
import 'package:kernel/target/targets.dart';
import 'package:path/path.dart' as path;
import 'package:usage/uuid/uuid.dart';
+
import 'package:vm/incremental_compiler.dart' show IncrementalCompiler;
import 'package:vm/kernel_front_end.dart'
show compileToKernel, parseCommandLineDefines;
+import 'package:vm/target/install.dart' show installAdditionalTargets;
ArgParser argParser = new ArgParser(allowTrailingOptions: true)
..addFlag('train',
@@ -300,9 +302,16 @@
return false;
}
+ // Ensure that Flutter and VM targets are added to targets dictionary.
+ installAdditionalTargets();
+
final TargetFlags targetFlags = new TargetFlags(
strongMode: options['strong'], syncAsync: options['sync-async']);
compilerOptions.target = getTarget(options['target'], targetFlags);
+ if (compilerOptions.target == null) {
+ print('Failed to create front-end target ${options['target']}.');
+ return false;
+ }
final String importDill = options['import-dill'];
if (importDill != null) {
diff --git a/pkg/vm/lib/target/install.dart b/pkg/vm/lib/target/install.dart
index adce65a..d6d40b2 100644
--- a/pkg/vm/lib/target/install.dart
+++ b/pkg/vm/lib/target/install.dart
@@ -14,10 +14,15 @@
import 'package:vm/target/vm.dart' show VmTarget;
+bool _installed = false;
+
void installAdditionalTargets() {
- targets["dart_runner"] = (TargetFlags flags) => new DartRunnerTarget(flags);
- targets["flutter"] = (TargetFlags flags) => new FlutterTarget(flags);
- targets["flutter_runner"] =
- (TargetFlags flags) => new FlutterRunnerTarget(flags);
- targets["vm"] = (TargetFlags flags) => new VmTarget(flags);
+ if (!_installed) {
+ targets["dart_runner"] = (TargetFlags flags) => new DartRunnerTarget(flags);
+ targets["flutter"] = (TargetFlags flags) => new FlutterTarget(flags);
+ targets["flutter_runner"] =
+ (TargetFlags flags) => new FlutterRunnerTarget(flags);
+ targets["vm"] = (TargetFlags flags) => new VmTarget(flags);
+ _installed = true;
+ }
}