Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 2bd7cbb

Browse files
alexmarkovcommit-bot@chromium.org
authored andcommitted
[vm/kernel] Add options to generate Fuchsia manifest to gen_kernel tool
This change adds options --manifest --component-name --data-dir to gen_kernel tool. After that, gen_kernel becomes a drop-in replacement for Fuchsia's kernel compiler. Change-Id: I8370b4224d1fc1973c8a850ea1e46defdb2cbac4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150690 Reviewed-by: Alexander Aprelev <aam@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
1 parent 6e82bee commit 2bd7cbb

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

pkg/vm/lib/kernel_front_end.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ void declareCompilerOptions(ArgParser args) {
123123
help:
124124
'Split resulting kernel file into multiple files (one per package).',
125125
defaultsTo: false);
126+
args.addOption('component-name',
127+
help: 'Name of the Fuchsia component', defaultsTo: null);
128+
args.addOption('data-dir',
129+
help: 'Name of the subdirectory of //data for output files');
130+
args.addOption('manifest', help: 'Path to output Fuchsia package manifest');
126131
args.addFlag('gen-bytecode', help: 'Generate bytecode', defaultsTo: false);
127132
args.addMultiOption('bytecode-options',
128133
help: 'Specify options for bytecode generation:',
@@ -181,6 +186,9 @@ Future<int> runCompiler(ArgResults options, String usage) async {
181186
final bool nullSafety = options['null-safety'];
182187
final bool useProtobufTreeShaker = options['protobuf-tree-shaker'];
183188
final bool splitOutputByPackages = options['split-output-by-packages'];
189+
final String manifestFilename = options['manifest'];
190+
final String dataDir = options['component-name'] ?? options['data-dir'];
191+
184192
final bool minimalKernel = options['minimal-kernel'];
185193
final bool treeShakeWriteOnlyFields = options['tree-shake-write-only-fields'];
186194
final List<String> experimentalFlags = options['enable-experiment'];
@@ -305,6 +313,10 @@ Future<int> runCompiler(ArgResults options, String usage) async {
305313
);
306314
}
307315

316+
if (manifestFilename != null) {
317+
await createFarManifest(outputFileName, dataDir, manifestFilename);
318+
}
319+
308320
return successExitCode;
309321
}
310322

pkg/vm/test/kernel_front_end_test.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ main() {
3737
});
3838

3939
String outputDill() => new File('${tempDir.path}/foo.dill').path;
40+
String outputManifest() => new File('${tempDir.path}/foo.manifest').path;
4041

4142
test('compile-simple', () async {
4243
await testCompile([
@@ -91,6 +92,10 @@ main() {
9192
'--output',
9293
outputDill(),
9394
'--split-output-by-packages',
95+
'--manifest',
96+
outputManifest(),
97+
'--component-name',
98+
'foo_component',
9499
'$sdkDir/$mainScript',
95100
]);
96101
}, timeout: Timeout.none);
@@ -120,6 +125,10 @@ main() {
120125
'--gen-bytecode',
121126
'--drop-ast',
122127
'--split-output-by-packages',
128+
'--manifest',
129+
outputManifest(),
130+
'--component-name',
131+
'foo_component',
123132
'$sdkDir/$mainScript',
124133
]);
125134
}, timeout: Timeout.none);

0 commit comments

Comments
 (0)