-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ARM64 targets for Windows and Linux #170
base: master
Are you sure you want to change the base?
Conversation
x86 builds will never be supported. Please remove. |
Here's a list of tasks:
Also, I don't currently own a |
I rewrote the build script for SDL3 using Docker, and while the build times are not great, it looks promising. However, Git is not happy for some reason. |
PRs for SDL3-CS, Veldrid-Spirv and ffmpeg have been opened.
How should I approach this? Just add these to a PR?
Is there anything I can do to get this task done? |
Figured I'd add, Windows ARM64 is exceptionally easy to test with because of Apple Silicon Macs. VMWare Fusion is free and runs Windows 11 ARM64. It's able to run osu!lazer perfectly fine with the Veldrid DX11 and OpenGL renderers, and you have the full suite of Visuai Studio ARM64 dev tools as well. |
This PR attempts to add ARM64 targets for Windows and Linux. The arm64 build for Windows seems to work out of the box.
There are two issues I'm currently facing:
Squirrel does not distinguish between multi-target builds. The releasified package does not take into account the architecture, which is given by changing the filename of the packed .nupkg file. This means that packages built for other Windows targets will be replaced, as will the entries in the RELEASES file. According to this issue How to release both x64 and ia32 versions Squirrel/Squirrel.Windows#554, a separate endpoint per target is required. This means that a separate release per architecture is required in osus releases page to solve this problem, which is not a pretty solution. What are your thoughts on this?
The Linux builds compile but do not currently run. It's not clear to me how the dependencies in the folder
./osu/osu.Desktop/bin/Debug/net8.0/runtimes/linux-arm64/
are collected, as no error messages appeared during compilation. Some libraries are missing when compared to those underwin-arm64
. For example,bass_fx
. Any advice on this matter is greatly appreciated.