Add initial {win,linux}-arm64 target support#192
Add initial {win,linux}-arm64 target support#192JamiKettunen wants to merge 4 commits intoppy:masterfrom
Conversation
This includes the architecture which we'll want to later clearly separate Windows builds for x64/arm64 much like is already done for Linux and macOS.
Instead of install.exe and osu.AppImage now we'll get install-arm64.exe and osu-arm64.AppImage cleanly separating the existing x64 variants from the newly supported arm64 ones.
|
While I understand everything non-mobile/Apple ARM64 is extremely low prio this PR should be in a state where it could be merged standalone without breaking x64 (keeping in mind the program would now be interactive without an additional architecture arg just like on macOS) while the anti-cheat/official builds are taken care of whenever someone has time to look at it. This whole thing is on the finish line to being fully online and unfortunately I can't do anything to help much further without straight up joining the dev team itself |
|
I understand your concern and wish to merge this, and we could, but it would be meaningless. This project is used to create official builds, and we can't create those builds until the other components are ready for use, making this quite useless on its own. It makes more sense for us to hold this in an open status to maintain awareness that other tasks are required to have it work. |
This is a modern remake of the previous draft (#170) which couldn't really be rebased mostly due to the platform-specific splits done with the Velopack transition so it turned out to be easier to adapt what already existed based on the latest
MacOSBuilderas an example.So far tested / done:
linux-arm64deploy (releases/osulazer-linux-arm64.AppImageworks as expected)win-arm64deploy (releases/osulazer-win-arm64-Setup.exeworks as expected + launchedosu!.execonfirmed to beArm64architecture via Task Manager)linux-arm64deploy (works as well fromlinux-x64as native one from what I can tell)win-arm64deploy (works as well fromwin-x64as native one from what I can tell, but fails on runtime when done fromlinux-x64host fwiw, no idea if cross-OS deploy is expected to work in general)arm64) also in Windows artifact filenames likeRELEASESetc like is already done with Linux/macOS? This was seemingly also mentioned in the previous PR but without further discussion about itTo-do:
{win,linux}-arm64native builds (out of my control due to being proprietary etc, shouldn't exactly be difficult to pull off with modern tooling available I feel?)@smoogipoo could you help clarifying the anticheat ARM64 compile situation from #170 (comment) which largely seems to now be the remaining blocker for official
{win,linux}-arm64native releases (potentially also after ppy/osu-framework@12c4009 is in a new-nativelibstag)?If GitHub actions are being utilized https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ and https://github.blog/changelog/2025-04-14-windows-arm64-hosted-runners-now-available-in-public-preview/ should make it trivial. As I previously also mentioned on
win-arm64technically https://learn.microsoft.com/en-us/windows/arm/arm64ec should allow using the x64 native anticheat or other missing bits without native ARM64 builds (yet).Closes #170.