Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 1 addition & 63 deletions shell/platform/fuchsia/dart/compiler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@ import 'package:vm/kernel_front_end.dart'
final ArgParser _argParser = createCompilerArgParser()
..addFlag('train',
help: 'Run through sample command line to produce snapshot',
negatable: false)
..addOption('component-name', help: 'Name of the component')
..addOption('data-dir',
help: 'Name of the subdirectory of //data for output files')
..addOption('manifest', help: 'Path to output Fuchsia package manifest');
negatable: false);

String _usage = '''
Usage: compiler [options] input.dart
Expand All @@ -29,7 +25,6 @@ ${_argParser.usage}

Future<void> main(List<String> args) async {
ArgResults options;

try {
options = _argParser.parse(args);

Expand Down Expand Up @@ -64,61 +59,4 @@ Future<void> main(List<String> args) async {
exitCode = compilerExitCode;
return;
}

final String output = options['output'];
final String dataDir = options.options.contains('component-name')
? options['component-name']
: options['data-dir'];
final String manifestFilename = options['manifest'];

if (manifestFilename != null) {
await createManifest(manifestFilename, dataDir, output);
}
}

Future createManifest(
String packageManifestFilename, String dataDir, String output) async {
List<String> packages = await File('$output-packages').readAsLines();

// Make sure the 'main' package is the last (convention with package loader).
packages.remove('main');
packages.add('main');

final IOSink packageManifest = File(packageManifestFilename).openWrite();

final String kernelListFilename = '$packageManifestFilename.dilplist';
final IOSink kernelList = File(kernelListFilename).openWrite();
for (String package in packages) {
final String filenameInPackage = '$package.dilp';
final String filenameInBuild = '$output-$package.dilp';
packageManifest
.write('data/$dataDir/$filenameInPackage=$filenameInBuild\n');
kernelList.write('$filenameInPackage\n');
}
await kernelList.close();

final String frameworkVersionFilename =
'$packageManifestFilename.frameworkversion';
final IOSink frameworkVersion = File(frameworkVersionFilename).openWrite();
for (String package in [
'collection',
'flutter',
'meta',
'typed_data',
'vector_math'
]) {
Digest digest;
if (packages.contains(package)) {
final filenameInBuild = '$output-$package.dilp';
final bytes = await File(filenameInBuild).readAsBytes();
digest = sha256.convert(bytes);
}
frameworkVersion.write('$package=$digest\n');
}
await frameworkVersion.close();

packageManifest.write('data/$dataDir/app.dilplist=$kernelListFilename\n');
packageManifest
.write('data/$dataDir/app.frameworkversion=$frameworkVersionFilename\n');
await packageManifest.close();
}