Update build configuration for multi-architecture support

- Added new build scripts for Linux and Windows targeting arm64 and x64 architectures.
- Updated package.json to include architecture-specific distribution commands.
- Modified build-backend.js to create architecture-specific build directories for better organization.
This commit is contained in:
Sudo-Ivan
2026-01-14 19:47:08 -06:00
parent c5e1d5cfec
commit 85f734bd9b
2 changed files with 38 additions and 10 deletions
+33 -9
View File
@@ -21,9 +21,13 @@
"electron": "pnpm run electron-postinstall && pnpm run build && electron .",
"dist": "pnpm run electron-postinstall && pnpm run build && electron-builder --publish=never",
"dist:linux": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux AppImage deb --publish=never",
"dist:linux-x64": "pnpm run electron-postinstall && PLATFORM=linux ARCH=x64 pnpm run build && electron-builder --linux AppImage deb --x64 --publish=never",
"dist:linux-arm64": "pnpm run electron-postinstall && PLATFORM=linux ARCH=arm64 pnpm run build && electron-builder --linux AppImage deb --arm64 --publish=never",
"dist:rpm": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux rpm --publish=never",
"dist:flatpak": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux flatpak --publish=never",
"dist:windows": "pnpm run electron-postinstall && PLATFORM=win32 pnpm run build && electron-builder --win portable nsis --publish=never",
"dist:win-x64": "pnpm run electron-postinstall && PLATFORM=win32 ARCH=x64 pnpm run build && electron-builder --win portable nsis --x64 --publish=never",
"dist:win-arm64": "pnpm run electron-postinstall && PLATFORM=win32 ARCH=arm64 pnpm run build && electron-builder --win portable nsis --arm64 --publish=never",
"dist:zip": "pnpm run electron-postinstall && pnpm run build && electron-forge make --targets @electron-forge/maker-zip",
"dist-prebuilt": "pnpm run electron-postinstall && pnpm run build-backend && electron-builder --publish=never",
"dist:mac-arm64": "pnpm run electron-postinstall && pnpm run build && electron-builder --mac --arm64 --publish=never",
@@ -114,7 +118,7 @@
},
"extraResources": [
{
"from": "build/exe/linux",
"from": "build/exe/linux-${arch}",
"to": "backend",
"filter": [
"**/*"
@@ -123,18 +127,26 @@
]
},
"win": {
"artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}",
"artifactName": "ReticulumMeshChat-v${version}-${os}-${arch}.${ext}",
"target": [
{
"target": "portable"
"target": "portable",
"arch": [
"x64",
"arm64"
]
},
{
"target": "nsis"
"target": "nsis",
"arch": [
"x64",
"arm64"
]
}
],
"extraResources": [
{
"from": "build/exe/win32",
"from": "build/exe/win32-${arch}",
"to": "backend",
"filter": [
"**/*"
@@ -143,16 +155,28 @@
]
},
"linux": {
"artifactName": "ReticulumMeshChatX-v${version}-${os}.${ext}",
"artifactName": "ReticulumMeshChatX-v${version}-${os}-${arch}.${ext}",
"target": [
"AppImage",
"deb"
{
"target": "AppImage",
"arch": [
"x64",
"arm64"
]
},
{
"target": "deb",
"arch": [
"x64",
"arm64"
]
}
],
"maintainer": "Sudo-Ivan",
"category": "Network",
"extraResources": [
{
"from": "build/exe/linux",
"from": "build/exe/linux-${arch}",
"to": "backend",
"filter": [
"**/*"
+5 -1
View File
@@ -44,9 +44,13 @@ function generateManifest(buildDir, manifestPath) {
try {
const platform = process.env.PLATFORM || process.platform;
const arch = process.env.ARCH || process.arch;
const isWin = platform === "win32" || platform === "win";
const targetName = isWin ? "ReticulumMeshChatX.exe" : "ReticulumMeshChatX";
const buildDirRelative = isWin ? "build/exe/win32" : "build/exe/linux";
// Create architecture-specific build directory
const platformFolder = isWin ? "win32" : "linux";
const buildDirRelative = `build/exe/${platformFolder}-${arch}`;
const buildDir = path.join(__dirname, "..", buildDirRelative);
// Allow overriding the python command (e.g., to use wine python for cross-builds)