Install cross-platform deps before packaging

This commit is contained in:
Fedor Indutny 2021-12-06 19:05:26 +01:00 committed by GitHub
parent 44872ac961
commit 3b70f4b0f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View file

@ -397,6 +397,7 @@
"signalcaptcha"
]
},
"beforeBuild": "scripts/install-cross-deps.js",
"asarUnpack": [
"ts/workers/heicConverter.bundle.js",
"ts/sql/mainWorker.bundle.js",
@ -453,7 +454,10 @@
"node_modules/socks/build/client/*.js",
"node_modules/smart-buffer/build/*.js",
"node_modules/sharp/build/**/*${arch}*.node",
"!node_modules/sharp/{install,src,vendor/include,vendor/*/include}",
"!node_modules/sharp/{install,src,vendor}",
"!node_modules/sharp/vendor",
"node_modules/sharp/vendor/*/*${arch}*/**",
"!node_modules/sharp/vendor/*/*${arch}*/**/include/**",
"!node_modules/better-sqlite3/deps/*",
"!node_modules/better-sqlite3/src/*",
"node_modules/better-sqlite3/build/Release/better_sqlite3.node",

View file

@ -0,0 +1,30 @@
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable no-console */
const path = require('path');
const { execSync } = require('child_process');
exports.beforeBuild = async () => {
if (process.platform !== 'darwin') {
return true;
}
const nonNativeArchs = ['arm64', 'x64'].filter(arch => arch !== process.arch);
for (const arch of nonNativeArchs) {
console.log("Installing sharp's dependencies for", arch);
execSync('yarn run install', {
cwd: path.join(__dirname, '..', 'node_modules', 'sharp'),
env: {
...process.env,
npm_config_arch: arch,
},
});
}
// Let electron-builder handle dependencies
return true;
};
exports.beforeBuild();