mirror of
https://github.com/flutter/flutter
synced 2024-09-19 16:21:58 +00:00
Generate and use dep-file for --preview-dart-2 (#15077)
* Use depfile in --preview-dart-2 mode. * Generate and use frontend_server.d to guard against reusing outdated dill files when frontend_server changes.
This commit is contained in:
parent
bcdbed9628
commit
673c5485ae
|
@ -438,9 +438,9 @@ abstract class BaseFlutterTask extends DefaultTask {
|
|||
if (buildMode != "debug") {
|
||||
args "--precompiled"
|
||||
} else {
|
||||
args "--depfile", "${intermediateDir}/snapshot_blob.bin.d"
|
||||
if (!previewDart2) {
|
||||
args "--snapshot", "${intermediateDir}/snapshot_blob.bin"
|
||||
args "--depfile", "${intermediateDir}/snapshot_blob.bin.d"
|
||||
}
|
||||
}
|
||||
args "--working-dir", "${intermediateDir}/flutter_assets"
|
||||
|
@ -508,6 +508,12 @@ class FlutterTask extends BaseFlutterTask {
|
|||
if (snapshotter != null) {
|
||||
sources = sources.plus(snapshotter)
|
||||
}
|
||||
if (previewDart2) {
|
||||
FileCollection frontendServer = readDependencies(project.file("${intermediateDir}/frontend_server.d"))
|
||||
if (frontendServer != null) {
|
||||
sources = sources.plus(frontendServer)
|
||||
}
|
||||
}
|
||||
if (localEngineSrcPath != null) {
|
||||
sources = sources.plus(project.files("$localEngineSrcPath/$localEngine"))
|
||||
}
|
||||
|
|
|
@ -367,6 +367,7 @@ Future<String> _buildAotSnapshot(
|
|||
sdkRoot: artifacts.getArtifactPath(Artifact.flutterPatchedSdkPath),
|
||||
mainPath: mainPath,
|
||||
outputFilePath: kApplicationKernelPath,
|
||||
depFilePath: dependencies,
|
||||
extraFrontEndOptions: extraFrontEndOptions,
|
||||
linkPlatformKernelIn : true,
|
||||
aot : true,
|
||||
|
@ -376,6 +377,10 @@ Future<String> _buildAotSnapshot(
|
|||
printError('Compiler terminated unexpectedly.');
|
||||
return null;
|
||||
}
|
||||
// Write path to frontend_server, since things need to be re-generated when
|
||||
// that changes.
|
||||
await outputDir.childFile('frontend_server.d')
|
||||
.writeAsString('frontend_server.d: ${artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk)}\n');
|
||||
|
||||
genSnapshotCmd.addAll(<String>[
|
||||
'--reify-generic-functions',
|
||||
|
|
|
@ -59,6 +59,7 @@ Future<String> compile(
|
|||
{String sdkRoot,
|
||||
String mainPath,
|
||||
String outputFilePath,
|
||||
String depFilePath,
|
||||
bool linkPlatformKernelIn: false,
|
||||
bool aot: false,
|
||||
bool trackWidgetCreation: false,
|
||||
|
@ -96,6 +97,9 @@ Future<String> compile(
|
|||
if (outputFilePath != null) {
|
||||
command.addAll(<String>['--output-dill', outputFilePath]);
|
||||
}
|
||||
if (depFilePath != null) {
|
||||
command.addAll(<String>['--depfile', depFilePath]);
|
||||
}
|
||||
|
||||
if (extraFrontEndOptions != null)
|
||||
command.addAll(extraFrontEndOptions);
|
||||
|
|
|
@ -80,11 +80,15 @@ Future<Null> build({
|
|||
incrementalCompilerByteStorePath: fs.path.absolute(getIncrementalCompilerByteStoreDirectory()),
|
||||
mainPath: fs.file(mainPath).absolute.path,
|
||||
outputFilePath: applicationKernelFilePath,
|
||||
depFilePath: depfilePath,
|
||||
trackWidgetCreation: trackWidgetCreation,
|
||||
);
|
||||
if (kernelBinaryFilename == null) {
|
||||
throwToolExit('Compiler terminated unexpectedly on $mainPath');
|
||||
}
|
||||
await fs.directory(getBuildDirectory()).childFile('frontend_server.d')
|
||||
.writeAsString('frontend_server.d: ${artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk)}\n');
|
||||
|
||||
kernelContent = new DevFSFileContent(fs.file(kernelBinaryFilename));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue