I figured out what the problem was with my test, so here a revised test matrix:
The core dump was due to the fact that I was compiling on macOS 10.15 and running on 10.14. In order to address the issue, you can actually compile and set an earlier target in your CMakeLists.txt
(before project()
):
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14 CACHE STRING "")
Making this change and recompiling shows that you can compile your plugin on the new M1 chipset and target either x86_64
or universal
(x86_64;arm64
) and it will run under the Intel platform just fine.
This does not change the fact that an “old” (Intel) plugin will only run in an Intel DAW (C8) or a universal DAW which is forced to go through the Rosetta translation layer (right click on the executable and select Open using Rosetta
source).
For a plugin developer, moving forward, it makes sense to build a universal plugin because the matrix shows that it will run in all cases (column F). And this is achieved by setting this in your CMakeLists.txt
(before project()
):
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14 CACHE STRING "") # whichever macOS version you are targeting...
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "") # for universal