Add hidden options --extra-front-end-options and --extra-gen-snapshot-options to flutter tool (#12219)
This CL introduces 2 hidden options to 'flutter build aot' and 'flutter run' for passing arbitrary arguments to front-end server and to gen_snapshot tool when building and running flutter app in --profile or --release modes.
The ability to pass arbitrary options simplifies various experiments, as it removes the need to change defaults and rebuild flutter engine for every tested configuration.
diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart
index b4be334..672c43b 100644
--- a/packages/flutter_tools/lib/src/build_info.dart
+++ b/packages/flutter_tools/lib/src/build_info.dart
@@ -10,7 +10,10 @@
/// Information about a build to be performed or used.
class BuildInfo {
- const BuildInfo(this.mode, this.flavor, { this.previewDart2 });
+ const BuildInfo(this.mode, this.flavor,
+ {this.previewDart2,
+ this.extraFrontEndOptions,
+ this.extraGenSnapshotOptions});
final BuildMode mode;
/// Represents a custom Android product flavor or an Xcode scheme, null for
@@ -24,6 +27,12 @@
// Whether build should be done using Dart2 Frontend parser.
final bool previewDart2;
+ /// Extra command-line options for front-end.
+ final String extraFrontEndOptions;
+
+ /// Extra command-line options for gen_snapshot.
+ final String extraGenSnapshotOptions;
+
static const BuildInfo debug = const BuildInfo(BuildMode.debug, null);
static const BuildInfo profile = const BuildInfo(BuildMode.profile, null);
static const BuildInfo release = const BuildInfo(BuildMode.release, null);