07d2c9f287
Change-Id: I077da86aff4420aba1323e98d6cde08ac871f6f1 Reviewed-on: https://dart-review.googlesource.com/47721 Commit-Queue: Sigmund Cherem <sigmund@google.com> Reviewed-by: Peter von der Ahé <ahe@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
57 lines
2.1 KiB
Dart
57 lines
2.1 KiB
Dart
// Copyright (c) 2017, 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.
|
|
|
|
/// Helper to run fasta with the right target configuration to build dart2js
|
|
/// applications using the dart2js platform libraries.
|
|
// TODO(sigmund): delete this file once we can configure fasta directly on the
|
|
// command line.
|
|
library compiler.tool.generate_kernel;
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:args/args.dart';
|
|
import 'package:compiler/src/kernel/dart2js_target.dart';
|
|
import 'package:compiler/src/filenames.dart';
|
|
import 'package:front_end/src/api_prototype/front_end.dart';
|
|
import 'package:front_end/src/compute_platform_binaries_location.dart'
|
|
show computePlatformBinariesLocation;
|
|
import 'package:front_end/src/fasta/util/relativize.dart';
|
|
import 'package:kernel/kernel.dart';
|
|
import 'package:kernel/target/targets.dart';
|
|
|
|
main(List<String> args) async {
|
|
ArgResults flags = _argParser.parse(args);
|
|
var options = new CompilerOptions()
|
|
..target = new Dart2jsTarget("dart2js", new TargetFlags())
|
|
..packagesFileUri = Uri.base.resolve('.packages')
|
|
..setExitCodeOnProblem = true
|
|
..linkedDependencies = [
|
|
Uri.base.resolve(nativeToUriPath(flags['platform']))
|
|
];
|
|
|
|
if (flags.rest.isEmpty) {
|
|
var script = relativizeUri(Platform.script);
|
|
var platform =
|
|
relativizeUri(Uri.base.resolve(nativeToUriPath(flags['platform'])));
|
|
print('usage: ${Platform.executable} $script '
|
|
'[--platform=$platform] [--out=out.dill] program.dart');
|
|
exit(1);
|
|
}
|
|
|
|
Uri entry = Uri.base.resolve(nativeToUriPath(flags.rest.first));
|
|
var component = await kernelForProgram(entry, options);
|
|
await writeComponentToBinary(component, flags['out']);
|
|
}
|
|
|
|
ArgParser _argParser = new ArgParser()
|
|
..addOption('platform',
|
|
help: 'location of the precompiled dart2js sdk',
|
|
defaultsTo: _defaultPlatform)
|
|
..addOption('out',
|
|
abbr: 'o', help: 'output location', defaultsTo: 'out.dill');
|
|
|
|
String _defaultPlatform = computePlatformBinariesLocation()
|
|
.resolve('dart2js_platform.dill')
|
|
.toFilePath();
|