Building VST and AAX without building AU?


#1

Hi jules,

This should be a very quick question.

I noticed that building VST or AAX also means building AU codes in the binary (#define JucePlugin_Build_AU 0 won’t help), hence copying the product to the AU plugin path in post script phase.

Is it possible to build VST or AAX without building the AU?

Thanks.


#2

Or, how can I modify the post script in the last build phase so that it won’t copy the product to the AU plugin path, when I build the project with Juce_build_AU flag set to 0.


#3

Sure. I do it all the time. You’ll probably have to move away from the Introjucer. The main trick is knowing what’s supposed to be linked into each format. VST and AAX are both pretty easy–since they really have a single point of origin (in terms of folder / Library). AU is trickier because there are lots of files to link in and they tend to be scattered in different places depending on your version of XCode (and the blasted Carbon leftovers). RTAS was an absolute bear, with a zillion paths to define. Even a good link might give you lots of worrisome warnings. It won’t be missed.

The good thing about it is that your mainline code doesn’t really need to know anything about the format. Any external dependencies are in the wrapper. I’m overstating the simplicity a little, but it’s really just a matter of leaving the unneeded wrappers and libraries out of the build.


#4

Hmm. Don’t think you need to suggest dropping the introjucer.

Surely all that needs to happen is a tiny tweak to the install script so that it doesn’t do the AU copying stage?


#5

[quote=“jules”]Hmm. Don’t think you need to suggest dropping the introjucer.

Surely all that needs to happen is a tiny tweak to the install script so that it doesn’t do the AU copying stage?[/quote]
Last time I looked at the Introjucer, I believe it was including all the libraries. But I don’t use it so perhaps my memory is in error.


#6

The post-build script has code to copy the AU but it does it conditionally only if you build the AU (the script checks if your lib exports symbols with “AudioUnit” in them).

Also afaik the AU libs are not included if you mark the AU off in the introducer.

So the way to build without AU, if you’re using the Introjucer, is to turn off “Build AudioUnit” in the Introjucer (and then re-export the xcode project).


#7

Thanks for all the tips,

I think I 'll go with tweaking the post script not to copy the product to the AU directory. I can just leave the AU parts in the VST and AAX builds, it’s not important.

I have to enable AU VST AAX build in the same project to make my life easier. (RTAS has to be separated, and I can only build it on an old 10.6.x machine with xcode3.2.x).
I need to do this because I have some specific codes compiled only for AU.

And I do prefer using introjucer since there are some paths and configs to tweak, and it is easy to switch to newer juce codes.


#8

Another option that I’m using (with xcode4) is to use the 10.7 SDK and use a libPluginLibrary.a that I copied over from my xcode3 machine…