I have a VS2019 project (from Projucer) that creates both a VST and a VST3.
I also have a GUI App version of the same project.
Is it normal and expected that the VST3 binary does not use the version info from the resource.rc file that is created by the Projucer, in the Properties > Details tab?
#pragma code_page(65001)
#ifdef JUCE_USER_DEFINED_RC_FILE
#include JUCE_USER_DEFINED_RC_FILE
#else
#undef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,2,3,4
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "MyCompany\0"
VALUE "FileDescription", "MyPlugin\0"
VALUE "FileVersion", "1.2.3.4\0"
VALUE "ProductName", "MyPlugin\0"
VALUE "ProductVersion", "1.2.3.4\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
#endif
Are you definitely looking at the properties of the VST3 binary, and not the enclosing VST3 bundle?
VST3s generated by JUCE on Windows have a directory structure. The outer āvst3ā is actually a folder, and the plugin shared library is located at theplugin.vst3/Contents/arch/theplugin.vst3.
I think the bundle should still be listed as a āfile folderā in the Explorer window. If it isnāt, you may be looking at the actual binary after all.
I think the set of visible fields might change depending on the file extension. If you rename the file to āMyPlugin-DB.dllā and then reopen the properties window, do you see the expected details?
Do you have to do something to enable this? Iām exporting plugins built with HISE using the latest VST3 SDK and they are coming out as single files on Windows.
Sorry, Iād misremembered. VST3s use the bundle structure when building with CMake, but Projucer still generates single-dll builds. Iāll add a backlog item to add VST3 bundle support to the Projucer.
I just tried running a cmake build Iām still getting the single file output - I assume this is because I used a tool to convert the .jucer to a cmake list rather than doing it manually. Is there anything I can do to mod my jucer file or the output from Projucer to give me the bundle output until this is officially supported by Projucer? Thanks
FRUTās Jucer2CMake tool also allows you to convert a Projucer project to a juce6 CMake project by passing the juce6 argument. That might be more straightforward than creating the bundle manually.
Just to follow up on this, we arenāt getting a VERSIONINFO resource in our VST3 built with the JUCE CMake system. The Version is blank. Is this definitely implemented?
Iāve got this in my artefacts folder
#pragma code_page(65001)
#ifdef JUCE_USER_DEFINED_RC_FILE
#include JUCE_USER_DEFINED_RC_FILE
#else
#undef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,31,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "Devious Machines\0"
VALUE "FileDescription", "Multiband X6\0"
VALUE "FileVersion", "1.0.31\0"
VALUE "ProductName", "Multiband X6\0"
VALUE "ProductVersion", "1.0.31\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
#endif
But itās not making it to my VST3 binary. Let me check youāve not fixed this.
edit: looks like my VST has no version information either :(. Am I expecting the .res file to be attached to the link.exe command line - because it isnāt.