From 7f3f0bd4fb67ce7dc90831a0a15af26647aa316d Mon Sep 17 00:00:00 2001 From: sbs44 <83440025+sbs44@users.noreply.github.com> Date: Mon, 12 Jan 2026 04:31:52 -0500 Subject: [PATCH] feat(build): add --cpu=pi5 flag for raspberry pi 5 - Add pi5_64 target platform for Cortex-A76 optimization - Support arm64 architecture with -mcpu=cortex-a76+nocrypto - Update device platform switch for exhaustiveness --- lib/src/cli/commands/build.dart | 5 ++++- lib/src/common.dart | 3 ++- lib/src/devices/flutterpi_ssh/device.dart | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/src/cli/commands/build.dart b/lib/src/cli/commands/build.dart index ba328ac..b0cc3d6 100644 --- a/lib/src/cli/commands/build.dart +++ b/lib/src/cli/commands/build.dart @@ -14,7 +14,7 @@ import '../../common.dart'; class BuildCommand extends FlutterpiCommand { static const archs = ['arm', 'arm64', 'x64', 'riscv64']; - static const cpus = ['generic', 'pi3', 'pi4']; + static const cpus = ['generic', 'pi3', 'pi4', 'pi5']; BuildCommand({bool verboseHelp = false}) { argParser.addSeparator( @@ -68,6 +68,8 @@ class BuildCommand extends FlutterpiCommand { 'Use a Raspberry Pi 3 tuned engine. Compatible with arm and arm64. (-mcpu=cortex-a53+nocrypto -mtune=cortex-a53)', 'pi4': 'Use a Raspberry Pi 4 tuned engine. Compatible with arm and arm64. (-mcpu=cortex-a72+nocrypto -mtune=cortex-a72)', + 'pi5': + 'Use a Raspberry Pi 5 tuned engine. Compatible with arm64 only. (-mcpu=cortex-a76 -mtune=cortex-a76)', }, ); } @@ -108,6 +110,7 @@ class BuildCommand extends FlutterpiCommand { ('arm64', 'generic') => FlutterpiTargetPlatform.genericAArch64, ('arm64', 'pi3') => FlutterpiTargetPlatform.pi3_64, ('arm64', 'pi4') => FlutterpiTargetPlatform.pi4_64, + ('arm64', 'pi5') => FlutterpiTargetPlatform.pi5_64, ('x64', 'generic') => FlutterpiTargetPlatform.genericX64, ('riscv64', 'generic') => FlutterpiTargetPlatform.genericRiscv64, (final arch, final cpu) => throw UsageException( diff --git a/lib/src/common.dart b/lib/src/common.dart index 302a6d3..aeb5d39 100644 --- a/lib/src/common.dart +++ b/lib/src/common.dart @@ -66,7 +66,8 @@ enum FlutterpiTargetPlatform { pi3.tuned32('pi3', 'armv7-generic', 'arm-linux-gnueabihf'), pi3_64.tuned64('pi3-64', 'aarch64-generic', 'aarch64-linux-gnu'), pi4.tuned32('pi4', 'armv7-generic', 'arm-linux-gnueabihf'), - pi4_64.tuned64('pi4-64', 'aarch64-generic', 'aarch64-linux-gnu'); + pi4_64.tuned64('pi4-64', 'aarch64-generic', 'aarch64-linux-gnu'), + pi5_64.tuned64('pi5-64', 'aarch64-generic', 'aarch64-linux-gnu'); const FlutterpiTargetPlatform.generic64(this.shortName, this.triple) : isGeneric = true, diff --git a/lib/src/devices/flutterpi_ssh/device.dart b/lib/src/devices/flutterpi_ssh/device.dart index 14ef034..35d4bc1 100644 --- a/lib/src/devices/flutterpi_ssh/device.dart +++ b/lib/src/devices/flutterpi_ssh/device.dart @@ -717,7 +717,8 @@ class FlutterpiSshDevice extends fl.Device { FlutterpiTargetPlatform.genericRiscv64 => fl.TargetPlatform.linux_arm64, FlutterpiTargetPlatform.genericAArch64 || FlutterpiTargetPlatform.pi3_64 || - FlutterpiTargetPlatform.pi4_64 => + FlutterpiTargetPlatform.pi4_64 || + FlutterpiTargetPlatform.pi5_64 => fl.TargetPlatform.linux_arm64, FlutterpiTargetPlatform.genericX64 => fl.TargetPlatform.linux_x64, };