Support building universal dmgs (x64 and arm64) for mac

Change-type: patch
This commit is contained in:
Alexis Svinartchouk 2021-02-15 13:23:17 +01:00
parent 1dba3ae19b
commit 0849d4f435
2 changed files with 6 additions and 8 deletions

View File

@ -6,7 +6,7 @@ const process = require('process');
// Rebuild native modules for ia32 and run webpack again for the ia32 part of windows packages // Rebuild native modules for ia32 and run webpack again for the ia32 part of windows packages
exports.default = function(context) { exports.default = function(context) {
if (context.platform.name === 'windows') { if (['windows', 'mac'].includes(context.platform.name)) {
cp.execFileSync( cp.execFileSync(
'bash', 'bash',
['./node_modules/.bin/electron-rebuild', '--types', 'dev', '--arch', context.arch], ['./node_modules/.bin/electron-rebuild', '--types', 'dev', '--arch', context.arch],

View File

@ -68,6 +68,8 @@ function renameNodeModules(resourcePath: string) {
path path
.relative(__dirname, resourcePath) .relative(__dirname, resourcePath)
.replace('node_modules', 'modules') .replace('node_modules', 'modules')
// use the same name on all architectures so electron-builder can build a universal dmg on mac
.replace(LZMA_BINDINGS_FOLDER, LZMA_BINDINGS_FOLDER_RENAMED)
// file-loader expects posix paths, even on Windows // file-loader expects posix paths, even on Windows
.replace(/\\/g, '/') .replace(/\\/g, '/')
); );
@ -87,6 +89,7 @@ function findLzmaNativeBindingsFolder(): string {
} }
const LZMA_BINDINGS_FOLDER = findLzmaNativeBindingsFolder(); const LZMA_BINDINGS_FOLDER = findLzmaNativeBindingsFolder();
const LZMA_BINDINGS_FOLDER_RENAMED = 'binding';
interface ReplacementRule { interface ReplacementRule {
search: string; search: string;
@ -190,12 +193,7 @@ const commonConfig = {
// remove node-pre-gyp magic from lzma-native // remove node-pre-gyp magic from lzma-native
{ {
search: 'require(binding_path)', search: 'require(binding_path)',
replace: () => { replace: `require('./${LZMA_BINDINGS_FOLDER}/lzma_native.node')`,
return `require('./${path.posix.join(
LZMA_BINDINGS_FOLDER,
'lzma_native.node',
)}')`;
},
}, },
// use regular stream module instead of readable-stream // use regular stream module instead of readable-stream
{ {
@ -317,7 +315,7 @@ if (os.platform() === 'win32') {
// liblzma.dll is required on Windows for lzma-native // liblzma.dll is required on Windows for lzma-native
guiConfigCopyPatterns.push({ guiConfigCopyPatterns.push({
from: `node_modules/lzma-native/${LZMA_BINDINGS_FOLDER}/liblzma.dll`, from: `node_modules/lzma-native/${LZMA_BINDINGS_FOLDER}/liblzma.dll`,
to: `modules/lzma-native/${LZMA_BINDINGS_FOLDER}/liblzma.dll`, to: `modules/lzma-native/${LZMA_BINDINGS_FOLDER_RENAMED}/liblzma.dll`,
}); });
} }