We have an application and we’re trying to target macOS versions below 10.11. I can’t find any documentation that suggests we shouldn’t be able to do that.
However, if I set CMAKE_OSX_DEPLOYMENT_TARGET to e.g. "10.10", the application fails to link due to missing symbols.
Examples of symbols that are not found include _AudioComponentCopyName (available since 10.6), _AudioUnitGetParameter (available since 10.0), _MusicDeviceMIDIEvent (available since 10.0).
Looking at the link command, the only difference between a successful build and a faililng one is this flag: -mmacosx-version-min=10.10, so I’m not sure if it’s a JUCE thing or some other flag that I’m missing. I should be able to target platforms well below 10.11, right?
On my machines (intel macbook running 10.15, M1 mini running Big Sur), running the following commands from the JUCE directory successfully builds and links the requested targets.
Could you try this out on your system? If this fails for you, then the issue is either with JUCE itself, or with your system. If it succeeds, then the problem is likely to be in your particular project.
You should also be aware that AUv3 plugins require a deployment target of at least 10.11, so if your target is an AUv3 that might explain the build failures you’re seeing.