Flutter tool support for building dynamic updates (#25576)
diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart
index f731aec..ac12851 100644
--- a/packages/flutter_tools/lib/src/build_info.dart
+++ b/packages/flutter_tools/lib/src/build_info.dart
@@ -13,7 +13,11 @@
const BuildInfo(this.mode, this.flavor, {
this.trackWidgetCreation = false,
this.compilationTraceFilePath,
- this.buildHotUpdate,
+ this.createBaseline,
+ this.createPatch,
+ this.patchNumber,
+ this.patchDir,
+ this.baselineDir,
this.extraFrontEndOptions,
this.extraGenSnapshotOptions,
this.buildSharedLibrary,
@@ -43,8 +47,24 @@
/// Dart compilation trace file to use for JIT VM snapshot.
final String compilationTraceFilePath;
+ /// Save baseline package.
+ final bool createBaseline;
+
/// Build differential snapshot.
- final bool buildHotUpdate;
+ final bool createPatch;
+
+ /// Internal version number of dynamic patch (not displayed to users).
+ /// Each patch should have a unique number to differentiate from previous
+ /// patches for the same versionCode on Android or CFBundleVersion on iOS.
+ final int patchNumber;
+
+ /// The directory where to store generated dynamic patches.
+ final String patchDir;
+
+ /// The directory where to store generated baseline packages.
+ /// Built packages, such as APK files on Android, are saved and can be used
+ /// to generate dynamic patches in later builds.
+ final String baselineDir;
/// Extra command-line options for front-end.
final String extraFrontEndOptions;
@@ -92,6 +112,9 @@
/// Exactly one of [isDebug], [isProfile], or [isRelease] is true.
bool get isRelease => mode == BuildMode.release || mode == BuildMode.dynamicRelease;
+ /// Returns whether a dynamic build is requested.
+ bool get isDynamic => mode == BuildMode.dynamicProfile || mode == BuildMode.dynamicRelease;
+
bool get usesAot => isAotBuildMode(mode);
bool get supportsEmulator => isEmulatorBuildMode(mode);
bool get supportsSimulator => isEmulatorBuildMode(mode);
@@ -101,7 +124,7 @@
BuildInfo(mode, flavor,
trackWidgetCreation: trackWidgetCreation,
compilationTraceFilePath: compilationTraceFilePath,
- buildHotUpdate: buildHotUpdate,
+ createPatch: createPatch,
extraFrontEndOptions: extraFrontEndOptions,
extraGenSnapshotOptions: extraGenSnapshotOptions,
buildSharedLibrary: buildSharedLibrary,