mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Eliminate snapshot/depfile options to build bundle (#21507)
The --snapshot argument was only necessary in Dart 1. The --depfile argument was only used in Dart 2 mode to pass to the kernel compiler, but was inconsistent with the 'build aot' command, where the depfile was always set to build/kernel_compile.d. This patch updates 'build bundle' to emit the depfile to a location consistent with the 'build aot' command; since it's not intended to be user-configurable and flutter.gradle hardcodes the location to build/kernel_compile.d either way, this patch also eliminates the ability to configure the filename altogether.
This commit is contained in:
parent
a2acc6a3e5
commit
43a106e95a
@ -176,9 +176,7 @@ BuildApp() {
|
||||
build bundle \
|
||||
--target-platform=ios \
|
||||
--target="${target_path}" \
|
||||
--snapshot="${build_dir}/snapshot_blob.bin" \
|
||||
--${build_mode} \
|
||||
--depfile="${build_dir}/snapshot_blob.bin.d" \
|
||||
--asset-dir="${derived_dir}/flutter_assets" \
|
||||
${precompilation_flag} \
|
||||
${local_engine_flag} \
|
||||
|
@ -409,11 +409,6 @@ abstract class BaseFlutterTask extends DefaultTask {
|
||||
// first stage of AOT build in this mode, and it includes all the Dart
|
||||
// sources.
|
||||
depfiles += project.files("${intermediateDir}/kernel_compile.d")
|
||||
|
||||
// Include Core JIT kernel compiler depfile, since kernel compile is
|
||||
// the first stage of JIT builds in this mode, and it includes all the
|
||||
// Dart sources.
|
||||
depfiles += project.files("${intermediateDir}/snapshot_blob.bin.d")
|
||||
return depfiles
|
||||
}
|
||||
|
||||
@ -495,8 +490,6 @@ abstract class BaseFlutterTask extends DefaultTask {
|
||||
}
|
||||
if (buildMode == "release" || buildMode == "profile") {
|
||||
args "--precompiled"
|
||||
} else {
|
||||
args "--depfile", "${intermediateDir}/snapshot_blob.bin.d"
|
||||
}
|
||||
args "--asset-dir", "${intermediateDir}/flutter_assets"
|
||||
if (buildMode == "debug") {
|
||||
|
@ -311,12 +311,10 @@ class AOTSnapshotter {
|
||||
if ((extraFrontEndOptions != null) && extraFrontEndOptions.isNotEmpty)
|
||||
printTrace('Extra front-end options: $extraFrontEndOptions');
|
||||
|
||||
final String depfilePath = fs.path.join(outputPath, 'kernel_compile.d');
|
||||
final CompilerOutput compilerOutput = await kernelCompiler.compile(
|
||||
sdkRoot: artifacts.getArtifactPath(Artifact.flutterPatchedSdkPath),
|
||||
mainPath: mainPath,
|
||||
outputFilePath: fs.path.join(outputPath, 'app.dill'),
|
||||
depFilePath: depfilePath,
|
||||
extraFrontEndOptions: extraFrontEndOptions,
|
||||
linkPlatformKernelIn: true,
|
||||
aot: true,
|
||||
|
@ -18,8 +18,6 @@ import 'globals.dart';
|
||||
const String defaultMainPath = 'lib/main.dart';
|
||||
const String defaultAssetBasePath = '.';
|
||||
const String defaultManifestPath = 'pubspec.yaml';
|
||||
String get defaultSnapshotPath => fs.path.join(getBuildDirectory(), 'snapshot_blob.bin');
|
||||
String get defaultDepfilePath => fs.path.join(getBuildDirectory(), 'snapshot_blob.bin.d');
|
||||
String get defaultApplicationKernelPath => fs.path.join(getBuildDirectory(), 'app.dill');
|
||||
const String defaultPrivateKeyPath = 'privatekey.der';
|
||||
|
||||
@ -36,9 +34,7 @@ Future<void> build({
|
||||
BuildMode buildMode,
|
||||
String mainPath = defaultMainPath,
|
||||
String manifestPath = defaultManifestPath,
|
||||
String snapshotPath,
|
||||
String applicationKernelFilePath,
|
||||
String depfilePath,
|
||||
String privateKeyPath = defaultPrivateKeyPath,
|
||||
String assetDirPath,
|
||||
String packagesPath,
|
||||
@ -51,8 +47,6 @@ Future<void> build({
|
||||
List<String> fileSystemRoots,
|
||||
String fileSystemScheme,
|
||||
}) async {
|
||||
snapshotPath ??= defaultSnapshotPath;
|
||||
depfilePath ??= defaultDepfilePath;
|
||||
assetDirPath ??= getAssetBuildDirectory();
|
||||
packagesPath ??= fs.path.absolute(PackageMap.globalPackagesPath);
|
||||
applicationKernelFilePath ??= defaultApplicationKernelPath;
|
||||
@ -68,7 +62,6 @@ Future<void> build({
|
||||
fs.path.absolute(getIncrementalCompilerByteStoreDirectory()),
|
||||
mainPath: fs.file(mainPath).absolute.path,
|
||||
outputFilePath: applicationKernelFilePath,
|
||||
depFilePath: depfilePath,
|
||||
trackWidgetCreation: trackWidgetCreation,
|
||||
extraFrontEndOptions: extraFrontEndOptions,
|
||||
fileSystemRoots: fileSystemRoots,
|
||||
|
@ -22,8 +22,6 @@ class BuildBundleCommand extends BuildSubCommand {
|
||||
..addOption('asset-base', help: 'Ignored. Will be removed.', hide: !verboseHelp)
|
||||
..addOption('manifest', defaultsTo: defaultManifestPath)
|
||||
..addOption('private-key', defaultsTo: defaultPrivateKeyPath)
|
||||
..addOption('snapshot', defaultsTo: defaultSnapshotPath)
|
||||
..addOption('depfile', defaultsTo: defaultDepfilePath)
|
||||
..addOption('kernel-file', defaultsTo: defaultApplicationKernelPath)
|
||||
..addOption('target-platform',
|
||||
defaultsTo: 'android-arm',
|
||||
@ -85,9 +83,7 @@ class BuildBundleCommand extends BuildSubCommand {
|
||||
buildMode: buildMode,
|
||||
mainPath: targetFile,
|
||||
manifestPath: argResults['manifest'],
|
||||
snapshotPath: argResults['snapshot'],
|
||||
applicationKernelFilePath: argResults['kernel-file'],
|
||||
depfilePath: argResults['depfile'],
|
||||
privateKeyPath: argResults['private-key'],
|
||||
assetDirPath: argResults['asset-dir'],
|
||||
precompiledSnapshot: argResults['precompiled'],
|
||||
|
@ -10,9 +10,11 @@ import 'package:usage/uuid/uuid.dart';
|
||||
import 'artifacts.dart';
|
||||
import 'base/common.dart';
|
||||
import 'base/context.dart';
|
||||
import 'base/file_system.dart';
|
||||
import 'base/fingerprint.dart';
|
||||
import 'base/io.dart';
|
||||
import 'base/process_manager.dart';
|
||||
import 'build_info.dart';
|
||||
import 'globals.dart';
|
||||
|
||||
KernelCompiler get kernelCompiler => context[KernelCompiler];
|
||||
@ -74,7 +76,6 @@ class KernelCompiler {
|
||||
String sdkRoot,
|
||||
String mainPath,
|
||||
String outputFilePath,
|
||||
String depFilePath,
|
||||
bool linkPlatformKernelIn = false,
|
||||
bool aot = false,
|
||||
List<String> entryPointsJsonFiles,
|
||||
@ -93,24 +94,22 @@ class KernelCompiler {
|
||||
// TODO(cbracken): eliminate pathFilter.
|
||||
// Currently the compiler emits buildbot paths for the core libs in the
|
||||
// depfile. None of these are available on the local host.
|
||||
Fingerprinter fingerprinter;
|
||||
if (depFilePath != null) {
|
||||
fingerprinter = new Fingerprinter(
|
||||
fingerprintPath: '$depFilePath.fingerprint',
|
||||
paths: <String>[mainPath],
|
||||
properties: <String, String>{
|
||||
'entryPoint': mainPath,
|
||||
'trackWidgetCreation': trackWidgetCreation.toString(),
|
||||
'linkPlatformKernelIn': linkPlatformKernelIn.toString(),
|
||||
},
|
||||
depfilePaths: <String>[depFilePath],
|
||||
pathFilter: (String path) => !path.startsWith('/b/build/slave/'),
|
||||
);
|
||||
final String depfilePath = fs.path.join(getBuildDirectory(), 'kernel_compile.d');
|
||||
final Fingerprinter fingerprinter = new Fingerprinter(
|
||||
fingerprintPath: '$depfilePath.fingerprint',
|
||||
paths: <String>[mainPath],
|
||||
properties: <String, String>{
|
||||
'entryPoint': mainPath,
|
||||
'trackWidgetCreation': trackWidgetCreation.toString(),
|
||||
'linkPlatformKernelIn': linkPlatformKernelIn.toString(),
|
||||
},
|
||||
depfilePaths: <String>[depfilePath],
|
||||
pathFilter: (String path) => !path.startsWith('/b/build/slave/'),
|
||||
);
|
||||
|
||||
if (await fingerprinter.doesFingerprintMatch()) {
|
||||
printTrace('Skipping kernel compilation. Fingerprint match.');
|
||||
return new CompilerOutput(outputFilePath, 0);
|
||||
}
|
||||
if (await fingerprinter.doesFingerprintMatch()) {
|
||||
printTrace('Skipping kernel compilation. Fingerprint match.');
|
||||
return new CompilerOutput(outputFilePath, 0);
|
||||
}
|
||||
|
||||
// This is a URI, not a file path, so the forward slash is correct even on Windows.
|
||||
@ -153,8 +152,8 @@ class KernelCompiler {
|
||||
if (outputFilePath != null) {
|
||||
command.addAll(<String>['--output-dill', outputFilePath]);
|
||||
}
|
||||
if (depFilePath != null && (fileSystemRoots == null || fileSystemRoots.isEmpty)) {
|
||||
command.addAll(<String>['--depfile', depFilePath]);
|
||||
if (fileSystemRoots == null || fileSystemRoots.isEmpty) {
|
||||
command.addAll(<String>['--depfile', depfilePath]);
|
||||
}
|
||||
if (fileSystemRoots != null) {
|
||||
for (String root in fileSystemRoots) {
|
||||
@ -186,9 +185,7 @@ class KernelCompiler {
|
||||
.listen(_stdoutHandler.handler);
|
||||
final int exitCode = await server.exitCode;
|
||||
if (exitCode == 0) {
|
||||
if (fingerprinter != null) {
|
||||
await fingerprinter.writeFingerprint();
|
||||
}
|
||||
await fingerprinter.writeFingerprint();
|
||||
return _stdoutHandler.compilerOutput.future;
|
||||
}
|
||||
return null;
|
||||
|
@ -169,7 +169,6 @@ Hello!
|
||||
incrementalCompilerByteStorePath: anyNamed('incrementalCompilerByteStorePath'),
|
||||
mainPath: anyNamed('mainPath'),
|
||||
outputFilePath: anyNamed('outputFilePath'),
|
||||
depFilePath: anyNamed('depFilePath'),
|
||||
trackWidgetCreation: anyNamed('trackWidgetCreation'),
|
||||
extraFrontEndOptions: anyNamed('extraFrontEndOptions'),
|
||||
fileSystemRoots: anyNamed('fileSystemRoots'),
|
||||
|
Loading…
Reference in New Issue
Block a user