diff --git a/build-config/build-before-pack.js b/build-config/build-before-pack.js index 4ab6a77e..1d8857f6 100644 --- a/build-config/build-before-pack.js +++ b/build-config/build-before-pack.js @@ -3,11 +3,16 @@ const fsPromises = require('fs').promises const path = require('path') const { Arch } = require('electron-builder') -const replaceSqliteLib = async() => { +const fileNameMap = { + [Arch.arm64]: 'arm64', + [Arch.armv7l]: 'armv7l', +} + +const replaceSqliteLib = async(arch) => { // console.log(await fs.readdir(path.join(context.appOutDir, './resources/'))) // if (context.electronPlatformName != 'linux' || context.arch != Arch.arm64) return console.log('replace sqlite lib...') - const filePath = path.join(__dirname, './lib/better_sqlite3.linux.arm64.node') + const filePath = path.join(__dirname, `./lib/better_sqlite3.linux.${fileNameMap[arch]}.node`) const targetPath = path.join(__dirname, '../node_modules/better-sqlite3/build/Release/better_sqlite3.node') await fsPromises.unlink(targetPath).catch(_ => _) await fsPromises.copyFile(filePath, targetPath) @@ -19,13 +24,20 @@ module.exports = async(context) => { if (electronPlatformName !== 'linux') return const bindingFilePath = path.join(__dirname, '../node_modules/better-sqlite3/binding.gyp') const bindingBakFilePath = path.join(__dirname, '../node_modules/better-sqlite3/binding.gyp.bak') - if (arch == Arch.arm64) { - console.log('rename binding file...') - await fsPromises.rename(bindingFilePath, bindingBakFilePath) - await replaceSqliteLib() - } else { - if (fs.existsSync(bindingFilePath)) return - console.log('restore binding file...') - await fsPromises.rename(bindingBakFilePath, bindingFilePath) + switch (arch) { + case Arch.arm64: + case Arch.armv7l: + if (fs.existsSync(bindingFilePath)) { + console.log('rename binding file...') + await fsPromises.rename(bindingFilePath, bindingBakFilePath) + } + await replaceSqliteLib(arch) + break + + default: + if (fs.existsSync(bindingFilePath)) return + console.log('restore binding file...') + await fsPromises.rename(bindingBakFilePath, bindingFilePath) + break } } diff --git a/build-config/lib/better_sqlite3.linux.armv7l.node b/build-config/lib/better_sqlite3.linux.armv7l.node new file mode 100644 index 00000000..54ddd0ca Binary files /dev/null and b/build-config/lib/better_sqlite3.linux.armv7l.node differ diff --git a/publish/changeLog.md b/publish/changeLog.md index ec1b572d..a7cef709 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -5,3 +5,4 @@ - 修复从搜索界面进入歌单详情后,若启用强迫症设置的清空功能会导致意外清空搜索框、搜索列表的问题 - 就放桌面歌词在启用卡拉OK歌词后字体边缘可能被截断的问题 - 修复桌面歌词启用歌词缩放后的阴影显示问题 +- 修复Linux armv7l系统(如树莓派)下无法启动的问题(与修复Linux arm64的方法一样采用内置预编译模块的方式修复)