Skip to content

Commit 647ee3d

Browse files
Add explicit ARM64 build support and documentation for Raspberry Pi 5
- Add detailed comments in package.ts clarifying ARM64 support for Raspberry Pi 5 - Add console logging to show which architectures are being built - Update README with platform support section mentioning ARM64/Raspberry Pi 5 - Clarify that ARM64 builds are generated for both AppImage and Deb packages Co-authored-by: thomasnordquist <7721625+thomasnordquist@users.noreply.github.com>
1 parent 6ce56bb commit 647ee3d

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

Readme.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@ Downloads can be found at the link above.
1818
This page is dedicated to its development.
1919
Pull-Requests and error reports are welcome.
2020

21+
## Platform Support
22+
23+
MQTT Explorer supports multiple platforms and architectures:
24+
25+
- **Windows**: x64
26+
- **macOS**: x64 (Intel) and ARM64 (Apple Silicon)
27+
- **Linux**: x64, ARM64 (Raspberry Pi 5), and ARMv7l (Raspberry Pi 4 and older)
28+
- Available formats: AppImage, Deb, Snap
29+
30+
ARM64 builds are perfect for running on Raspberry Pi 5 and other ARM64-based single-board computers.
31+
2132
## Quick Start with GitHub Codespaces
2233

2334
The fastest way to start developing is with GitHub Codespaces:

package.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import * as fs from 'fs'
33
import * as path from 'path'
44
import * as dotProp from 'dot-prop'
55

6+
// Linux AppImage build for multiple architectures
7+
// Builds for: x64, ARM64 (Raspberry Pi 5), and ARMv7l (Raspberry Pi 4 and older)
68
const linuxAppImage: builder.CliOptions = {
79
x64: true,
810
ia32: false,
911
armv7l: true,
10-
arm64: true,
12+
arm64: true, // Raspberry Pi 5 support
1113
projectDir: './build/clean',
1214
publish: 'always',
1315
}
@@ -21,11 +23,13 @@ const linuxSnap: builder.CliOptions = {
2123
publish: 'always',
2224
}
2325

26+
// Linux Deb package build for multiple architectures
27+
// Builds for: amd64 (x64), arm64 (Raspberry Pi 5), and armhf (Raspberry Pi 4 and older)
2428
const linuxDeb: builder.CliOptions = {
2529
x64: true,
2630
ia32: false,
2731
armv7l: true,
28-
arm64: true,
32+
arm64: true, // Raspberry Pi 5 support
2933
projectDir: './build/clean',
3034
publish: 'always',
3135
}
@@ -76,6 +80,7 @@ async function executeBuild() {
7680
await buildWithOptions(winAppx, { platform: 'win', package: 'appx' })
7781
break
7882
case 'linux':
83+
console.log('Building Linux packages for architectures: x64, arm64 (Raspberry Pi 5), armv7l')
7984
await buildWithOptions(linuxAppImage, { platform: 'linux', package: 'AppImage' })
8085
await buildWithOptions(linuxSnap, { platform: 'linux', package: 'snap' })
8186
await buildWithOptions(linuxDeb, { platform: 'linux', package: 'deb' })
@@ -105,6 +110,14 @@ async function buildWithOptions(options: builder.CliOptions, buildInfo: BuildInf
105110

106111
const packageJson = JSON.parse(fs.readFileSync(jsonLocation).toString())
107112

113+
// Log architectures being built
114+
const architectures = []
115+
if (options.x64) architectures.push('x64')
116+
if (options.arm64) architectures.push('arm64')
117+
if (options.armv7l) architectures.push('armv7l')
118+
if (options.ia32) architectures.push('ia32')
119+
console.log(`Building ${buildInfo.package} for architectures: ${architectures.join(', ')}`)
120+
108121
// AppX must have a different name since the store name is already taken (but not used)
109122
if (buildInfo.package === 'appx') {
110123
dotProp.set(packageJson, 'build.productName', 'MQTT-Explorer')

0 commit comments

Comments
 (0)