Please add ARM to exporter architecture menu in Projucer for macOS
Can we get 64 bit Intel as well
Maybe I’m misunderstanding the feature request, but it’s already possible to set the valid architectures for the macOS/Xcode exporter:
I was talking about this menu:
The issue is my ARM version and Intel version need to build against different SDK versions and link against libraries from different paths.
So I was hoping to add DebugIntel and DebugARM with different settings, build them both and the use lipo to join them into a fat binary.
Turns out that won’t work for me anyway, since I need to link against different libraries, and libraries can only be specified at the exporter level, not the target level. (And I don’t think clang supports anything like pragma comment).
So I’ve gone with creating a separate exporter for macOS ARM and macOS Intel, build them both and then use lipo to join into a fat binary. It works, but it’s a bit annoying to have separate project files for the Intel and ARM builds.
I’m not sure what I’m going to do for plugins yet, since AAX doesn’t build on ARM. There doesn’t seem to be a way to disable just the AAX build for ARM.
I second this - having the option to specify architecture per-target would be immensely helpful for building AAX. Knowing Avid, it might be quite a while before they actually update their SDK to support ARM, and right now we need to either have a separate exporter just for AAX, or manually update the Xcode project after saving in Projucer.
I understand that the CMake step can be huge but honestly you wouldn’t bother with those stuff anymore.
No change is necessary to Juce/Projucer. In the long run, we’ll need arm for AAX anyway and then that option would become moot again.
It is already possible to build an arm Mac AAX plugin with Juce. The AAX NDA prevents me from saying much, but I found it very easy to add a few lines of code and tweak a few XCode settings to make the AAX SDK compile on arm64 as well as arm64/x64 universal using XCode 12.2.
Then the JUCE plugin builds can just be done as always. I tested the resulting arm64/x64 universal AAX plugin in PT (including signing) and it loads just fine on x64. Of course there is no way to test the created arm64 variant yet, but this way we are ideally prepared for a future PT arm64 version and it might just work without any changes.
@pflugshaupt thanks for the heads up. I’ll just look at doing this.