quite new here, i’m trying to follow the creating a plugin from scratch tutorial provided on the steinbergmedia github io (can’t share link) in order to just generally include the SDK in my own blank projects, whether that be for creating a host application or a vst.
however this tutorial seems to be more specifically for vst rather than host(?)
when building the project i get the error: Bundle does not export the required ‘GetPluginFactory’ function. from my understanding this is more to do with building vsts rather than hosts?
the cmake version and vst directory stuff is there but haven’t included it in this.
if i switch to add_executable i get some strange cmake related warnings…
[cmake] CMake Warning (dev) at CMakeLists.txt:14 (add_executable):
[cmake] Policy CMP0063 is not set: Honor visibility properties for all target
[cmake] types. Run "cmake --help-policy CMP0063" for policy details. Use the
[cmake] cmake_policy command to set the policy and suppress this warning.
[cmake]
[cmake] Target "VST" of type "EXECUTABLE" has the following visibility properties
[cmake] set for CXX:
[cmake]
[cmake] CXX_VISIBILITY_PRESET
[cmake] VISIBILITY_INLINES_HIDDEN
[cmake]
[cmake] For compatibility CMake is not honoring them for this target.
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
although i can still build a standard executable from the project?
UPDATE: just looked into the strange cmake error and realised i was using an older version, this seemed to resolve itself when changing the minimum required version to 3.15.
still would love some clarification on the other stuff above if anyone knows!
thanks, i have inspected the audio and editor host cmake files but unfortunately can’t quite make sense of it when trying to combine it with the above cmakelists.text
edit: i’d like to be able to make both but creating projects from scratch and just including the sdk in my projects via cmake
yes i did, so when i tried following the tutorial i would get some errors:
[build] Bundle does not export the required 'GetPluginFactory' function
i believe this is probably to do with the smtg_add_vst3plugin() cmake function? as thats for making vst3 plugins rather than hosts?
i’d like to be able to build plugins which can act as either standalone or vst3 so with that in mind i guess i’m trying to build both vst3 and a standard executable/application bundle(?)
my cmake:
cmake_minimum_required(VERSION 3.15.0)
project( MyPluginHostPlugin
VERSION 1.0.0
DESCRIPTION "A plugin host which can be run either as standalone or as a plugin")
set(vst3sdk_SOURCE_DIR
"/Users/jaketyler/Documents/CXX Development/Frameworks/VSTSDK/vst3sdk")
add_subdirectory(
${vst3sdk_SOURCE_DIR} ${PROJECT_BINARY_DIR}/vst3sdk)
smtg_enable_vst3_sdk()
smtg_add_vst3plugin( MyPluginHostPlugin
source/main.cpp)
smtg_target_set_bundle( MyPluginHostPlugin
BUNDLE_IDENTIFIER "org.mycompany.MyPluginHostPlugin"
COMPANY_NAME "MyCompany")
smtg_target_set_debug_executable( MyPluginHostPlugin
"/Applications/VST3PluginTestHost.app"
"--pluginfolder;$(BUILT_PRODUCTS_DIR)")
target_link_libraries( MyPluginHostPlugin
PRIVATE
sdk)
smtg_target_configure_version_file( MyPluginHostPlugin)
also for reference, my main.cpp doesn’t even include any public.sdk headers yet and is just a simple iostream hello world test:
i removed my previous posts as i didn’t want to get myself too off track on what i’m trying to achieve. so right now i’ve been able to modify the editor host example and its cmake to for my own use:
with this i am able to run some simple code in my main.cpp which loads an instance of a vst, prints out some info to the console such as factory stuff and params with their IDs and then closes.
i’ve also stripped it back to just a main, and gotten rid of the platform subfolder in my source as i’d like to explore my own windowing functionality and platform stuff myself (not sure if this will be an issue long term? usediids.cpp?)
currently my issue is when i build this, i am unable to open the application bundle as it says You can’t open the application “MyHost” because it may be damaged or incomplete. i haven’t modified the info.plist that comes with the example and am wondering if its to do with this? also a little unsure on how application bundles work in general?
to be fair, i’m looking at the investigator host sample now and think this might be more what i’m looking for? or at least a combination between the editor and inspector hosts
UPDATE: after looking at the inspector host example it seems like its not that much different from the editor host - the difference being is it uses more of the vst gui stuff and the ui descriptions(?)
i’ve noticed a common trait among the examples and am hoping for some clarification, in the inspector cmake example:
i’m a bit confused why we have to include public.sdk source files (both headers and cpp) in our build target? whether it be for this example or the editor host example?
if i understand correctly, i thought these would end up being object files and included in stuff like the sdk and sdk_hosting libraries which we include in our project via: