Skip to content

Commit 35ae169

Browse files
committed
Extend --shorebird-trace to aar, ios-framework, and desktop builds
Wires --shorebird-trace into: - BuildAarCommand and BuildFrameworkCommand (iOS frameworks) - The shared usesBuildModeFlags path in FlutterCommand, which covers desktop builds (linux, macos, windows) - AAR Gradle build path in AndroidGradleBuilder, mirroring the existing trace session usage in the assemble path Note: when 'flutter build aar' is invoked with multiple modes in a single run, each iteration's trace overwrites the previous one. Shorebird's release flow only builds release mode, so this is not a concern in practice.
1 parent cedb807 commit 35ae169

4 files changed

Lines changed: 20 additions & 0 deletions

File tree

packages/flutter_tools/lib/src/android/gradle.dart

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,16 @@ class AndroidGradleBuilder implements AndroidBuilder {
799799
final String aarTask = getAarTaskFor(buildInfo);
800800
final Status status = _logger.startProgress("Running Gradle task '$aarTask'...");
801801

802+
// When a caller runs `flutter build aar` multiple modes in one
803+
// invocation (debug + profile + release), each iteration's trace
804+
// overwrites the previous one. Shorebird's release flow only
805+
// builds release mode, so this isn't a concern in practice.
806+
final AndroidBuildTraceSession? traceSession = AndroidBuildTraceSession.maybeStart(
807+
androidBuildInfo,
808+
_fileSystem,
809+
project.android.buildDirectory,
810+
);
811+
802812
final String flutterRoot = _fileSystem.path.absolute(Cache.flutterRoot!);
803813
final String initScript = _fileSystem.path.join(
804814
flutterRoot,
@@ -872,8 +882,10 @@ class AndroidGradleBuilder implements AndroidBuilder {
872882
command.add('-Ptarget-platform=$targetPlatforms');
873883
}
874884

885+
command.addAll(traceSession?.extraGradleOptions(aarTask) ?? const <String>[]);
875886
command.add(aarTask);
876887

888+
traceSession?.onGradleAboutToStart();
877889
final sw = Stopwatch()..start();
878890
RunResult result;
879891
try {
@@ -895,7 +907,10 @@ class AndroidGradleBuilder implements AndroidBuilder {
895907
),
896908
);
897909

910+
traceSession?.onGradleFinished(aarTask);
911+
898912
if (result.exitCode != 0) {
913+
traceSession?.abortOnGradleFailure();
899914
_logger.printStatus(result.stdout, wrap: false);
900915
_logger.printError(result.stderr, wrap: false);
901916
throwToolExit(
@@ -905,10 +920,12 @@ class AndroidGradleBuilder implements AndroidBuilder {
905920
}
906921
final Directory repoDirectory = getRepoDirectory(outputDirectory);
907922
if (!repoDirectory.existsSync()) {
923+
traceSession?.abortOnGradleFailure();
908924
_logger.printStatus(result.stdout, wrap: false);
909925
_logger.printError(result.stderr, wrap: false);
910926
throwToolExit('Gradle task $aarTask failed to produce $repoDirectory.', exitCode: exitCode);
911927
}
928+
traceSession?.finish(buildTarget: 'aar', printStatus: _logger.printStatus);
912929
_logger.printStatus(
913930
'${_logger.terminal.successMark} '
914931
'Built ${_fileSystem.path.relative(repoDirectory.path)}',

packages/flutter_tools/lib/src/commands/build_aar.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class BuildAarCommand extends BuildSubCommand {
4949
usesExtraDartFlagOptions(verboseHelp: verboseHelp);
5050
usesTrackWidgetCreation(verboseHelp: false);
5151
addEnableExperimentation(hide: !verboseHelp);
52+
usesShorebirdTraceOption(hide: !verboseHelp);
5253
addAndroidSpecificBuildOptions(hide: !verboseHelp);
5354
argParser.addMultiOption(
5455
'target-platform',

packages/flutter_tools/lib/src/commands/build_ios_framework.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ abstract class BuildFrameworkCommand extends BuildSubCommand {
4747
addDartObfuscationOption();
4848
usesExtraDartFlagOptions(verboseHelp: verboseHelp);
4949
addEnableExperimentation(hide: !verboseHelp);
50+
usesShorebirdTraceOption(hide: !verboseHelp);
5051

5152
argParser
5253
..addFlag(

packages/flutter_tools/lib/src/runner/flutter_command.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,6 +1163,7 @@ abstract class FlutterCommand extends Command<void> {
11631163
usesDartDefineOption();
11641164
usesExtraDartFlagOptions(verboseHelp: verboseHelp);
11651165
usesPubOption();
1166+
usesShorebirdTraceOption(hide: !verboseHelp);
11661167
usesTargetOption();
11671168
usesTrackWidgetCreation(verboseHelp: verboseHelp);
11681169
usesBuildNumberOption();

0 commit comments

Comments
 (0)