gristlabs / grist-desktop

Desktop Grist, packaged with Electron
Apache License 2.0
154 stars 7 forks source link

Win arm64 support #46

Open salmanmkc opened 1 month ago

salmanmkc commented 1 month ago

Not sure if this is all that is needed, looks like there's some binding for SQLLite3?

Also would need self-hosted arm agents I think, I don't think GitHub has it yet

SleepyLeslie commented 3 weeks ago

Hi @salmanmkc, thanks for your contribution. Unfortunately it seems that GitHub indeed doesn't offer arm64 Windows runners (https://github.com/actions/runner-images/issues/768) at this moment. I don't think Grist Labs plans to connect a self-hosted runner, so we likely couldn't merge this PR as of now. Leaving it to @paulfitz for a decision.

Plus, SQLite3 compatibility is something you must explicitly address. The SQLite3 Node.js binding is architecture-specific. During yarn install, it uses prebuild-install to download a prebuilt binding (see https://www.npmjs.com/package/sqlite3). The hosted builds do not cover Windows arm64, so you will have to build it manually. In fact we are already doing this for Windows ia32:

https://github.com/gristlabs/grist-desktop/blob/a1a1694b2d94d42b8bc0a24cf064dbb75c54a403/.github/workflows/package.yml#L87-L97

For some reasons if fallback_to_build is not set it will still download the x64 binding even if target_arch is set to ia32, so we actually manually build the ia32 binding in our workflow.

Furthermore, you will need to resolve the merge conflict caused by #45.