Has anyone here managed to get XCode to link the stdlib with their RTAS or AAX plugin?
We’re trying to use an
variable.
In an AU and VST we can set the C++ Standard Library to: libc++ (LLVM C++ standard library with c++11 support), but that causes link errors when compiling RTAS and AAX
From what I gather, the standard's atomic<bool> is used essentially the same way as a normal bool... And JUCE doesn't provide a bool-compatible version of Atomic, only signed 32-bit and 64-bit integers (though there are int8 and int16 versions available on Windows: InterlockedExchange).
Using juce::Atomic<int>, for example, would mean more code wrapping for setting/getting a bool-like state.
Though, one could argue how std::atomic<bool> is more beneficial than juce::Atomic<int> with a bit more code...
I built the libraries using C++11 [-std=c++11] and using a base SDK of 10.7 I can compile RTAS and AAX in Xcode without issues using the latest JUCE tip.
I've been able to build RTAS and AAX under VS2015 and compile a functional plug-in. (tested under Pro Tools 10.3.10)
Here are some tips:
- Make sure in all the projects below you have the following settings:
* Toolset includes xp (eg. v140_xp)
* Make all libs static "Code Generation Runtime" - /MT (release) and /MTd (debug)
* On Digidesign Projects only (not yours!): Make sure "Calling Convention" is __stdcall
* Build the following projects: RTASClientLib, DSPManagerClientLib & SimplePlugIn (build PlugInLibrary no need for the entire solution!, this make stdlib version of PlugInLibrary)