From 16b7969f78ffd3aa6c9c28fb95feefa6a39954e5 Mon Sep 17 00:00:00 2001 From: Noah Nash <48302704+noah-nash@users.noreply.github.com> Date: Thu, 13 Jul 2023 04:29:15 -0600 Subject: [PATCH] Desktop: Fixes #6052: Create ARM64 function for cross-compile support (#8452) Co-authored-by: Laurent Cozic --- packages/app-desktop/tools/electronRebuild.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/app-desktop/tools/electronRebuild.js b/packages/app-desktop/tools/electronRebuild.js index 0166de4e3a..4864d507f9 100644 --- a/packages/app-desktop/tools/electronRebuild.js +++ b/packages/app-desktop/tools/electronRebuild.js @@ -1,5 +1,9 @@ const execCommand = require('./execCommand'); +const isArm64 = () => { + return process.platform === 'arm64'; +}; + const isWindows = () => { return process && process.platform === 'win32'; }; @@ -28,6 +32,13 @@ async function main() { // with 32-bit files and vice-versa console.info(await execCommand(['yarn', 'run', 'electron-rebuild', forceAbiArgs, '--arch ia32'].join(' '))); console.info(await execCommand(['yarn', 'run', 'electron-rebuild', forceAbiArgs, '--arch x64'].join(' '))); + } else if (isArm64()) { + // Keytar needs it's own electron-rebuild or else it will not fetch the + // existing prebuilt binary, this will cause cross-compilation to fail. + // E.g. for MacOS arm64 it will download: + // https://github.com/atom/node-keytar/releases/download/v7.9.0/keytar-v7.9.0-napi-v3-darwin-arm64.tar.gz + console.info(await execCommand(['yarn', 'run', 'electron-rebuild', forceAbiArgs, '--arch=arm64', '--only=keytar'].join(' '))); + console.info(await execCommand(['yarn', 'run', 'electron-rebuild', forceAbiArgs].join(' '))); } else { console.info(await execCommand(['yarn', 'run', 'electron-rebuild', forceAbiArgs].join(' '))); }