Using build configurations in xCode

Because all the build format (AU, VST, AAX, etc) check boxes are global, I have to constantly switchback and forth between IntroJucer and xCode whenever I want to build a different configuration. To alleviate this I have been trying to create a separate build configuration for each one. I would like to go into xCode and build the configurations I need without having to constantly switch back and forth between xCode and IntroJucer. I unchecked all of the global build formats in Introjucer and used preprocessor definitions in the target configurations to define only the required format for each configuration. However, this did not work as I expected because it appears that certain items are generated only then checked in IntroJucer. After fiddling around a bit I tried checking ALL the global check boxes and then using the preprocessor definitions to set the formats I DON'T want to zero (e.g. JucePlugin_Build_AU=0). This actually seems to work but I was wondering if (1) this will have some unintended side effect, and (2) if I'm just missing something and there's a better way to do this. Thanks.

Are you aware of the fact that the different plugin formats are compiled simultaneously into the same binary? I don't see why you would need to switch back and forth... just decide which formats you need for your plug-in and tick those options in the Introjucer.

I understand that i can have VST and VST3 in the same DLL on Windows. Can I do the same thing across the board just put them all in a single binary? On the Mac, can I name one bundle xxx.Component and just make copies called xxx.vst, xxx.vst3, and xxx.AAX? This would certainly be easier.

What about special cases like AU? Does it make sense to have an AU class in a Windows binary just because the box is checked even though AU doesn't run on Windows, or does JUCE know not to compile AU on Windows?


What you are asking for is what the auto-generated Xcode post-build script is already doing for you!

If you create an Xcode project from the Introjucer, with AU, VST2 etc. ticked, just build it in Xcode. This will build the binary and then copy it with the right name  (*.component, *.vst, etc.)  into the right folder (Library/Audio/Plug-ins/Components and ..../VST, respectively) for you! Are you having a specific problem with this?

About Windows: no, it doesn't make sense to have AU there and it's not built on Windows for that reason.

Yes, I'm aware of what the post-build script does. I was a little worried about having all those wrappers in a single executable but I was not aware that it was intended to be used this way. At first glance it seems a little odd to have VST2, VST3, AU, and AAX all in the same executable but if there are no ill effects then why not.

I have a similar question.

With Universal Binary (32/64-bit) setting in Introjucer, RTAS format is not compiled. I have to switch to Universal Binary (32-bit) and re-save the projects just to build RTAS binaries.

Is there an easier way to do it ?

Hi Manu,

I was a little worried also when RTAS showed the notice of missing library.

But here at least, it simply says that it won't build on 64bit but the dll builds just fine and it's Universal Binary...