Add support for Android x86_64 ABI to Flutter (#42401)
diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart
index 391af85..bb8df2f 100644
--- a/packages/flutter_tools/lib/src/base/build.dart
+++ b/packages/flutter_tools/lib/src/base/build.dart
@@ -327,6 +327,7 @@
return const <TargetPlatform>[
TargetPlatform.android_arm,
TargetPlatform.android_arm64,
+ TargetPlatform.android_x64,
TargetPlatform.ios,
TargetPlatform.darwin_x64,
].contains(platform);
diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart
index fefa80c..e0cc68c 100644
--- a/packages/flutter_tools/lib/src/build_info.dart
+++ b/packages/flutter_tools/lib/src/build_info.dart
@@ -90,6 +90,7 @@
this.targetArchs = const <AndroidArch>[
AndroidArch.armeabi_v7a,
AndroidArch.arm64_v8a,
+ AndroidArch.x86_64,
],
this.splitPerAbi = false,
this.shrink = false,
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index d173bdf..1d4fccd 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -1193,6 +1193,8 @@
<String>['android-arm-release/darwin-x64', 'android-arm-release/darwin-x64.zip'],
<String>['android-arm64-profile/darwin-x64', 'android-arm64-profile/darwin-x64.zip'],
<String>['android-arm64-release/darwin-x64', 'android-arm64-release/darwin-x64.zip'],
+ <String>['android-x64-profile/darwin-x64', 'android-x64-profile/darwin-x64.zip'],
+ <String>['android-x64-release/darwin-x64', 'android-x64-release/darwin-x64.zip'],
];
const List<List<String>> _linuxBinaryDirs = <List<String>>[
@@ -1200,6 +1202,7 @@
<String>['android-arm-release/linux-x64', 'android-arm-release/linux-x64.zip'],
<String>['android-arm64-profile/linux-x64', 'android-arm64-profile/linux-x64.zip'],
<String>['android-arm64-release/linux-x64', 'android-arm64-release/linux-x64.zip'],
+ <String>['android-x64-profile/linux-x64', 'android-x64-profile/linux-x64.zip'],
<String>['android-x64-release/linux-x64', 'android-x64-release/linux-x64.zip'],
];
@@ -1208,6 +1211,8 @@
<String>['android-arm-release/windows-x64', 'android-arm-release/windows-x64.zip'],
<String>['android-arm64-profile/windows-x64', 'android-arm64-profile/windows-x64.zip'],
<String>['android-arm64-release/windows-x64', 'android-arm64-release/windows-x64.zip'],
+ <String>['android-x64-profile/windows-x64', 'android-x64-profile/windows-x64.zip'],
+ <String>['android-x64-release/windows-x64', 'android-x64-release/windows-x64.zip'],
];
const List<List<String>> _iosBinaryDirs = <List<String>>[
diff --git a/packages/flutter_tools/lib/src/commands/build_aar.dart b/packages/flutter_tools/lib/src/commands/build_aar.dart
index fd9eb3a..7eeb7ab 100644
--- a/packages/flutter_tools/lib/src/commands/build_aar.dart
+++ b/packages/flutter_tools/lib/src/commands/build_aar.dart
@@ -20,7 +20,7 @@
argParser
..addMultiOption('target-platform',
splitCommas: true,
- defaultsTo: <String>['android-arm', 'android-arm64'],
+ defaultsTo: <String>['android-arm', 'android-arm64', 'android-x64'],
allowed: <String>['android-arm', 'android-arm64', 'android-x86', 'android-x64'],
help: 'The target platform for which the project is compiled.',
)
diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart
index 5f15243..e0e3dd0 100644
--- a/packages/flutter_tools/lib/src/commands/build_aot.dart
+++ b/packages/flutter_tools/lib/src/commands/build_aot.dart
@@ -31,7 +31,7 @@
..addOption('output-dir', defaultsTo: getAotBuildDirectory())
..addOption('target-platform',
defaultsTo: 'android-arm',
- allowed: <String>['android-arm', 'android-arm64', 'ios'],
+ allowed: <String>['android-arm', 'android-arm64', 'ios', 'android-x64'],
)
..addFlag('quiet', defaultsTo: false)
..addFlag('report-timings',
diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart
index 507ed5a..dab9188 100644
--- a/packages/flutter_tools/lib/src/commands/build_apk.dart
+++ b/packages/flutter_tools/lib/src/commands/build_apk.dart
@@ -31,7 +31,7 @@
)
..addMultiOption('target-platform',
splitCommas: true,
- defaultsTo: <String>['android-arm', 'android-arm64'],
+ defaultsTo: <String>['android-arm', 'android-arm64', 'android-x64'],
allowed: <String>['android-arm', 'android-arm64', 'android-x86', 'android-x64'],
help: 'The target platform for which the app is compiled.',
);
diff --git a/packages/flutter_tools/lib/src/commands/build_appbundle.dart b/packages/flutter_tools/lib/src/commands/build_appbundle.dart
index bfea24f..874f94e 100644
--- a/packages/flutter_tools/lib/src/commands/build_appbundle.dart
+++ b/packages/flutter_tools/lib/src/commands/build_appbundle.dart
@@ -25,8 +25,8 @@
..addFlag('track-widget-creation', negatable: false, hide: !verboseHelp)
..addMultiOption('target-platform',
splitCommas: true,
- defaultsTo: <String>['android-arm', 'android-arm64'],
- allowed: <String>['android-arm', 'android-arm64'],
+ defaultsTo: <String>['android-arm', 'android-arm64', 'android-x64'],
+ allowed: <String>['android-arm', 'android-arm64', 'android-x64'],
help: 'The target platform for which the app is compiled.',
);
}
diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
index 5c6434d..ccc9a21 100644
--- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart
+++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart
@@ -1267,7 +1267,7 @@
'-Pflutter-root=$flutterRoot',
'-Poutput-dir=${buildDirectory.path}',
'-Pis-plugin=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'assembleAarRelease',
],
environment: anyNamed('environment'),
@@ -1281,7 +1281,7 @@
'-Pflutter-root=$flutterRoot',
'-Poutput-dir=${buildDirectory.path}',
'-Pis-plugin=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'assembleAarRelease',
],
environment: anyNamed('environment'),
diff --git a/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart b/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
index d0311337..28bbe6c 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_apk_test.dart
@@ -42,7 +42,7 @@
final BuildApkCommand command = await runBuildApkCommand(projectPath);
expect(await command.usageValues,
- containsPair(CustomDimensions.commandBuildApkTargetPlatform, 'android-arm,android-arm64'));
+ containsPair(CustomDimensions.commandBuildApkTargetPlatform, 'android-arm,android-arm64,android-x64'));
}, overrides: <Type, Generator>{
AndroidBuilder: () => FakeAndroidBuilder(),
@@ -209,7 +209,7 @@
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
'-Pshrink=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'assembleRelease',
],
workingDirectory: anyNamed('workingDirectory'),
@@ -241,7 +241,7 @@
'-q',
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'assembleRelease',
],
workingDirectory: anyNamed('workingDirectory'),
@@ -267,7 +267,7 @@
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
'-Pshrink=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'assembleRelease',
],
workingDirectory: anyNamed('workingDirectory'),
diff --git a/packages/flutter_tools/test/general.shard/commands/build_appbundle_test.dart b/packages/flutter_tools/test/general.shard/commands/build_appbundle_test.dart
index d2bd224..7071889 100644
--- a/packages/flutter_tools/test/general.shard/commands/build_appbundle_test.dart
+++ b/packages/flutter_tools/test/general.shard/commands/build_appbundle_test.dart
@@ -42,7 +42,7 @@
final BuildAppBundleCommand command = await runBuildAppBundleCommand(projectPath);
expect(await command.usageValues,
- containsPair(CustomDimensions.commandBuildAppBundleTargetPlatform, 'android-arm,android-arm64'));
+ containsPair(CustomDimensions.commandBuildAppBundleTargetPlatform, 'android-arm,android-arm64,android-x64'));
}, overrides: <Type, Generator>{
AndroidBuilder: () => FakeAndroidBuilder(),
@@ -198,7 +198,7 @@
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
'-Pshrink=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'bundleRelease',
],
workingDirectory: anyNamed('workingDirectory'),
@@ -232,7 +232,7 @@
'-q',
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'bundleRelease',
],
workingDirectory: anyNamed('workingDirectory'),
@@ -258,7 +258,7 @@
'-Ptarget=${fs.path.join(tempDir.path, 'flutter_project', 'lib', 'main.dart')}',
'-Ptrack-widget-creation=false',
'-Pshrink=true',
- '-Ptarget-platform=android-arm,android-arm64',
+ '-Ptarget-platform=android-arm,android-arm64,android-x64',
'bundleRelease',
],
workingDirectory: anyNamed('workingDirectory'),