diff --git a/app/electron-builder-arm64.yml b/app/electron-builder-arm64.yml new file mode 100644 index 000000000..a8c706ced --- /dev/null +++ b/app/electron-builder-arm64.yml @@ -0,0 +1,75 @@ +productName: "SiYuan" +appId: "org.b3log.siyuan" +asar: false +compression: "normal" +copyright: "© 2024 Yunnan Liandi Technology Co., Ltd." +artifactName: "siyuan-${version}-${os}-arm64.${ext}" +extraMetadata: + main: "electron/main.js" +directories: + output: "build" +files: + - "electron" +extraFiles: + - from: "../LICENSE" + to: "LICENSE" +win: + icon: "src/assets/icon.ico" + extraResources: + - from: "kernel-arm64" + to: "kernel" + requestedExecutionLevel: "asInvoker" + # certificateSubjectName: "Yunnan Liandi Technology Co., Ltd." + signingHashAlgorithms: [ 'sha256' ] + #rfc3161TimeStampServer: "http://sha256timestamp.ws.symantec.com/sha256/timestamp" + #rfc3161TimeStampServer: "http://time.certum.pl" + rfc3161TimeStampServer: "http://timestamp.entrust.net/TSS/RFC3161sha2TS" + target: + - target: "nsis" + arch: "arm64" +nsis: + oneClick: false + perMachine: false + allowToChangeInstallationDirectory: true + allowElevation: true + deleteAppDataOnUninstall: true + createDesktopShortcut: true + createStartMenuShortcut: true + shortcutName: "SiYuan" + license: "../LICENSE" + include: "nsis/installer.nsh" + warningsAsErrors: false + installerSidebar: "nsis/installerSidebar.bmp" + uninstallerSidebar: "nsis/uninstallerSidebar.bmp" + +extraResources: + - from: "changelogs" + to: "changelogs" + - from: "stage" + to: "stage" + - from: "guide" + to: "guide" + filter: "!**/{.DS_Store,.git,.gitignore,.idea}" + - from: "appearance/boot" + to: "appearance/boot" + filter: "!**/{.DS_Store}" + - from: "appearance/icons" + to: "appearance/icons" + filter: "!**/{.DS_Store}" + - from: "appearance/langs" + to: "appearance/langs" + filter: "!**/{.DS_Store}" + - from: "appearance/emojis" + to: "appearance/emojis" + filter: "!**/{.DS_Store}" + - from: "appearance/themes/midnight" + to: "appearance/themes/midnight" + filter: "!**/{.DS_Store,custom.css}" + - from: "appearance/themes/daylight" + to: "appearance/themes/daylight" + filter: "!**/{.DS_Store,custom.css}" + - from: "src/assets/fonts" + to: "appearance/fonts" + filter: "!**/{.DS_Store}" + - from: "pandoc/pandoc-windows-amd64.zip" + to: "pandoc.zip" \ No newline at end of file diff --git a/app/package.json b/app/package.json index 7a2ed9e5a..07df386c7 100644 --- a/app/package.json +++ b/app/package.json @@ -19,6 +19,7 @@ "start": "NODE_ENV=development electron ./electron/main.js", "dist-appx": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --config electron-appx-builder.yml", "dist": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --config electron-builder.yml --publish=never", + "dist-arm64": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --arm64 --config electron-builder-arm64.yml --publish=never", "dist-darwin": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --mac --config electron-builder-darwin.yml --publish=never", "dist-darwin-arm64": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --arm64 --mac --config electron-builder-darwin-arm64.yml --publish=never", "dist-linux": "ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ electron-builder --linux --config electron-builder-linux.yml --publish=never" diff --git a/scripts/win-build.bat b/scripts/win-build.bat index da942c6fd..00ec75e3d 100644 --- a/scripts/win-build.bat +++ b/scripts/win-build.bat @@ -13,6 +13,7 @@ cd .. echo 'Cleaning Builds' del /S /Q /F app\build 1>nul del /S /Q /F app\kernel 1>nul +del /S /Q /F app\kernel-arm64 1>nul echo 'Building Kernel' @REM the C compiler "gcc" is necessary https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ @@ -22,17 +23,24 @@ set GOPROXY=https://goproxy.io set CGO_ENABLED=1 cd kernel -@REM you can use `go generate` instead (nead add something in main.go) +@REM you can use `go mod tidy` to update kernel dependency before build +@REM you can use `go generate` instead (need add something in main.go) goversioninfo -platform-specific=true -icon=resource/icon.ico -manifest=resource/goversioninfo.exe.manifest set GOOS=windows set GOARCH=amd64 -@REM you can use `go mod tidy` to update kernel dependency before build go build --tags fts5 -v -o "../app/kernel/SiYuan-Kernel.exe" -ldflags "-s -w -H=windowsgui" . if errorlevel 1 ( exit /b %errorlevel% ) +set GOARCH=arm64 +@REM if you want to build arm64, you need to install aarch64-w64-mingw32-gcc +set CC="D:/Program Files/llvm-mingw-20240518-ucrt-x86_64/bin/aarch64-w64-mingw32-gcc.exe" +go build --tags fts5 -v -o "../app/kernel-arm64/SiYuan-Kernel-arm64.exe" -ldflags "-s -w -H=windowsgui" . +if errorlevel 1 ( + exit /b %errorlevel% +) cd .. echo 'Building Electron App' @@ -41,6 +49,11 @@ call pnpm run dist if errorlevel 1 ( exit /b %errorlevel% ) +echo 'Building Electron App arm64' +call pnpm run dist-arm64 +if errorlevel 1 ( + exit /b %errorlevel% +) cd .. echo 'Building Appx'