Including std:: functions in AAX/RTAS with Xcode


#1

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

Thanks,

Rail


#2

Why not use juce Atomic class?

http://www.juce.com/api/classAtomic.html#details


#3

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...


#4

If I want to benefit from many new features I'm expected to turn to C++11

While we don't mind dropping 10.6 support RTAS is still being used and if I try to switch to libc++ the build fails due to RTAS.

With AAXlib as long as I'm building the lib as libc++ I'm good to go.

 

Any ideas?


#5

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.

Rail


#6

Thank you Rail,

Do you have any tips/workflow of building the PT90 library on modern OS X machines?

I've been trying, even unzipped a brand new PT90 copy to make sure I'm starting from scratch.

Thank you.

 

I've been able to do Windows builds with some/little tweaking on VS2015.

 

* if you find this too sensitive for public forum (NDA...) I don't mind switching to PM.

Thanks.


#7

For those who'll might need to make RTAS libs for C++11.

In order to support C++11 properly.

Mac OS X 10.7 and above, Windows 7 and above (I don't have the time or energy checking Vista ;) )

 

For Mac:

To avoid compilations errors you must use SDK 10.6 as Rail was kind enough to show me.

https://github.com/phracker/MacOSX-SDKs/releases

After linking it to your Xcode SDK you're all set. libc++ will work and your JUCE plug-ins will compile just fine.

 

For Windows side this might be helpful:

http://www.juce.com/forum/topic/current-dev-tools-and-windows-sdk-windows

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)