I’d like to add my 2 cents here. I love the monolithic build, because I already have plenty of targets, especially on Windows, where debug, release, Win32, etc. are separate builds. Multiplying all of that by 4 for separate VST, VST3, AAX and AU builds doesn’t seem appealing, even if that’s just on the Mac.
But I’m wondering if there is a semi-elegant solution we can all agree on. I don’t think I will ever use ProJucer, except possiblely when creating new projects from scratch. So I don’t need ProJucer to support this and I suspect many others are in the same boat. As long as there is a way to turn on monolithic builds (With a #define or whatever) then I’d be very happy with that. And then the ProJucer code wouldn’t need to be more any complicated.
I looked at the latest code and the Mac exports for VST, etc. look the same, so I suspect if I built with multiple formats enabled then it would work as a monolithic plug-in, except of course for AU. But that is more manageable, if just AU has to be it’s own build.
But I’m also thinking that I will want to stay on AU V2, because I don’t need of the new V3 features and it sounds like V2 hosts will need minor updates to support V3 plug-ins, but V2 plug-ins will continue to work just fine in V3 hosts. So I’d much rather stay on V2 for as long as I can.
I’m thinking I will make a copy of AU_Wrapper.cpp and call it AU_V2_Wrapper.cpp, so that hopefully I can continue using the old wrapper without too much trouble. I’d love it if Juce would continue to support V2 for a limited time period with a similar approach. Again this wouldn’t have to be something that ProJucer supports.