Are there any plans to add ARM64 support for windows10 and the upcoming windows11? I tried building Projucer for ARM64 with msvc, but it got stuck on __cpuid and some other stuff that seems to exist only for x86/x64. I know I can run the x64 version of Projucer just fine, but ARM64 is only going to get bigger on windows and compared to rosetta2 on macOS the performance penalty is quite severe on windows.
Of course it’s too early for plugins, but being able to compile Windows/ARM64 apps would be very nice.
Someone actually tried their hand at extending support for arm64. It’s in a very old PR in GitHub. Might be worth having a gander to see what’s needed.
If I may suggest making this into smaller chunks. With cmake I’m pretty sure you can set basic arm64 settings and then first fix the actual core parts broken.
The PR I linked is too old to use as a patch, so I adapted some of the changes. It also has more changes than needed and I really don’t care about the SIMD classes at this point. With the following minimal .patch to juce 6.1.0 I was able to build Projucer for win|arm64 and then created a juce audio app with the Projucer that runs successfully and produces sound.
Of course this requires adding an “ARM64” config inside visual studio as Projucer can’t do that - and it’ll overwrite the config on each save. When starting the built .exe from visual studio there’s some illegal exception happening, but using “continue” makes the apps launch and when started regularly, things just work fine. Overall adding support to this seems easy, but the devil is probably in the details. I don’t care, I don’t need this for production yet, but if someone wants to take it further, here’s my minimal patch:
With commit 2d42b9a, JUCE now supports Windows Arm support on the develop branch.
To build for Arm, re-build the Projucer and then select “ARM” (32-bit arm - Windows RT - deprecated by Microsoft) or “ARM64” (now simply called Windows Arm) from the architecture menu in Projucer’s Visual Studio build configuration.