Hi guys,
I finally tried to clean up my project and add the VST3SDK and JUCE as submodules, instead of having them in global folders…
Unfortunately I’m not getting the error plugininterfaces/vst2.x/vstfxstore.h not found.
I’m only building a VST3 and if I add the files vst2.x folder manually everything builds perfectly.
It’s just silly to base everything on a submodule and then manually altering the submodule.
All submodules are on the newest master, as I just initialised them.
I somehow think that these lines in juice_VST3_Wrapper.cpp are causing the problem. In the new JUCE version the folder vst2.x doesn’t even exist.
Have a look at the JUCE 5.4 release notes, particularly the breaking changes section:
Change
The VST2 SDK embedded within JUCE has been removed.
Possible Issues
Building or hosting VST2 plug-ins requires header files from the VST2 SDK,
which is no longer part of JUCE.
Building a VST2-compatible VST3 plug-in (the previous default behaviour in
JUCE) requires header files from the VST2 SDK, which is no longer part of
JUCE. When a new JUCE plug-in project is created the option
JUCE_VST3_CAN_REPLACE_VST2 will be set to zero.
Workaround
The VST2 SDK can be obtained from the vstsdk3610_11_06_2018_build_37 (or
older) VST3 SDK or JUCE version 5.3.2. You should put the VST2 SDK in your
header search paths or use the “VST (Legacy) SDK Folder” fields in the
Projucer.
For new plug-in projects where you will be releasing both a VST2 and VST3
version, and you want the VST3 plug-in to replace the VST2 plug-in in
hosts that support it, then you should enable the JUCE_VST3_CAN_REPLACE_VST2
option.
Rationale
Distributing VST2 plug-ins requires a VST2 license from Steinberg. Following
Steinberg’s removal of the VST2 SDK from their public SDKs we are also removing
the VST2 SDK from the JUCE codebase.
This thread goes into more detail:
You shouldn’t need a separate VST3 SDK if you are not modifying it, as JUCE contains an embedded VST3 SDK.
If you have already released a plug-in then you will need the VST2 SDK files. If you have not released a plug-in then set JUCE_VST3_CAN_REPLACE_VST2=0.
You’d have to use the undef preprocessor directive; e.g. Add the undef line below the directives to define the VST2 setting you mentioned. In any event, a new repo has been uploaded which still poses problems in regards to “plugininterfaces/vst2.x/vstfxstore.h” still not being found, and further, the …/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp creating the Vst2 namespace