Building Juce demo plugin VST and AU with Xcode 5


#1

I hope this helps someone, and will be fixed in a future version:

Building the Juce demo plugin with Xcode 5.0.2 - MacOSX 10.8.5
--------------------------------------------------------------------------------

Install the following SDKs:
- VST3 SDK: expected to be under ~/SDKs/VST3 SDK
- VST2 SDK: expected to be under ~/SDKs/vstsdk2.4 (probably only disable building the VST3 version)

Install MacOSX10.7 SDK.

Install CoreAudio files (see: https://github.com/adfernandes/core-audio-utility-classes)

Pull latest Juce code and open the Juce demo plugin project in Xcode.

When trying to build the plugins:
"Product --> Build for archiving" is not there
--> on several forums, people claim that this was removed from Xcode and that "Product --> Archive" command does the build + archiving in one step now
--> this creates an .xcarchive file (which you don't care about), and the actual plugins are moved (not copied) to the following folders:
    ~/Library/username/Audio/Plug-Ins/Components 
    ~/Library/username/Audio/Plug-Ins/VST 
    ~/Library/username/Audio/Plug-Ins/VST3

There were 2 warnings:
- Validate Project Settings
  Update to recommended settings
- juce_VST3_Wrapper.cpp: Unused variable 'version' (line 778)
--> I ignored these

PROBLEM:
Build appears to go well, but none of the built plugins actually load in Live 9.1.1 32bit, Logic 9.1.8 32bit, Plogue Bidule 32bit nor 64bit, ...

ACTION:
Build the Introjucer on Mac by just clicking the "play" button (build and then run current scheme). Then open the .jucer file for the Juce demo plugin.
--> This showed that the following settings were not correct, so I changed them myself (*):
    OSX Base SDK Version: Use Default --> 10.7 SDK
    OSX Compatibility Version: Use Default --> 10.7 SDK
    OSX Architecture: Use Default --> Universal Binary (32/64-bit)

After this change, this now works.

 

Question: 10.6 SDK compatibility?

I also tried with the 10.6 SDK but that didn't work:
I get all kinds of errors like this:

In file included from /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:47:
In file included from /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.h:62:
In file included from /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.h:58:
/Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h:203:2: error: unknown type name 'AudioComponentPlugInInterface'; did you mean 'AudioComponentPlugInInstance'?
        AudioComponentPlugInInterface           mPlugInInterface;
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        AudioComponentPlugInInstance
/Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h:202:8: note: 'AudioComponentPlugInInstance' declared here
struct AudioComponentPlugInInstance {
       ^
/Applications/Xcode.app/Contents/Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h:203:33: error: field has incomplete type 'AudioComponentPlugInInstance'
        AudioComponentPlugInInterface           mPlugInInterface;
                                                ^

First I thought it was because I used the 1.03 version of these CoreAudio files / patch, so I tried with the 1.02 version, but no luck there either: same errors…
If anyone knows what this could be, that'd be great, as I would still like to support 10.6 if possible...

Koen

 

(*) I also saw a BUG in the Introjucer, because even when making changes to these settings in the Introjucer, saving the project, and the re-opening the Xcode project, these settings were still not there.
--> so I had to make them manually in Xcode:
    Base SDK: No SDK (Latest OS X)
    --> changed this to OS X 10.7
    Architectures: Standard Architectures (64-bit Intel)
    --> changed this to Universal (32/64-bit Intel)
    OS X Deployment Target: OS X 10.7
    --> left untouched
This seems to have disappeared in the latest pull from git today though (or it only happens once in a while).


#2

Using 10.7 for Base SDK and 10.6 for Deployment Target seems to build and plugins are loaded correctly (tested on OSX 10.8.5 and OSX 10.7.5).

Does anyone know what will happen when running this on a 10.6.8 system? Will it work, or could it crash because of the 10.7 SDK used?

 


#3

Hi KoenT,

was is working with 10.6? Did you test it?

Cheers