From 5b189848cd923ce24845bf94f1cb033bc0c55093 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 8 Apr 2021 02:26:18 +0200 Subject: [PATCH 1/4] Make VST3 SDK a distinct target --- plugins/vst/CMakeLists.txt | 30 ++------- plugins/vst/cmake/Vst3.cmake | 121 +++++++++++++++++++++-------------- 2 files changed, 78 insertions(+), 73 deletions(-) diff --git a/plugins/vst/CMakeLists.txt b/plugins/vst/CMakeLists.txt index f6bd7724..765ac8f5 100644 --- a/plugins/vst/CMakeLists.txt +++ b/plugins/vst/CMakeLists.txt @@ -145,18 +145,9 @@ else() DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}") endif() -if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE - "-Wno-extra" - "-Wno-multichar" - "-Wno-reorder" - "-Wno-class-memaccess" - "-Wno-ignored-qualifiers" - "-Wno-unknown-pragmas" - "-Wno-unused-function" - "-Wno-unused-parameter" - "-Wno-unused-variable") -endif() +gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE + "-Wno-ignored-qualifiers" + "-Wno-unused-parameter") # To help debugging the link only if(FALSE) @@ -323,18 +314,9 @@ elseif(SFIZZ_AU) "${AUWRAPPER_BASEDIR}/auresource.r") endif() - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE - "-Wno-extra" - "-Wno-multichar" - "-Wno-reorder" - "-Wno-class-memaccess" - "-Wno-ignored-qualifiers" - "-Wno-unknown-pragmas" - "-Wno-unused-function" - "-Wno-unused-parameter" - "-Wno-unused-variable") - endif() + gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE + "-Wno-ignored-qualifiers" + "-Wno-unused-parameter") # Installation if(AUPLUGIN_INSTALL_DIR) diff --git a/plugins/vst/cmake/Vst3.cmake b/plugins/vst/cmake/Vst3.cmake index 960678de..c8aed3c2 100644 --- a/plugins/vst/cmake/Vst3.cmake +++ b/plugins/vst/cmake/Vst3.cmake @@ -1,68 +1,91 @@ find_package(Threads REQUIRED) # --- VST3SDK --- +add_library(vst3sdk STATIC EXCLUDE_FROM_ALL + "${VST3SDK_BASEDIR}/base/source/baseiids.cpp" + "${VST3SDK_BASEDIR}/base/source/fbuffer.cpp" + "${VST3SDK_BASEDIR}/base/source/fdebug.cpp" + "${VST3SDK_BASEDIR}/base/source/fdynlib.cpp" + "${VST3SDK_BASEDIR}/base/source/fobject.cpp" + "${VST3SDK_BASEDIR}/base/source/fstreamer.cpp" + "${VST3SDK_BASEDIR}/base/source/fstring.cpp" + "${VST3SDK_BASEDIR}/base/source/timer.cpp" + "${VST3SDK_BASEDIR}/base/source/updatehandler.cpp" + "${VST3SDK_BASEDIR}/base/thread/source/fcondition.cpp" + "${VST3SDK_BASEDIR}/base/thread/source/flock.cpp" + "${VST3SDK_BASEDIR}/pluginterfaces/base/conststringtable.cpp" + "${VST3SDK_BASEDIR}/pluginterfaces/base/coreiids.cpp" + "${VST3SDK_BASEDIR}/pluginterfaces/base/funknown.cpp" + "${VST3SDK_BASEDIR}/pluginterfaces/base/ustring.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/common/commoniids.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/common/pluginview.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/main/pluginfactory.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstaudioeffect.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstbus.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstcomponent.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstcomponentbase.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vsteditcontroller.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstinitiids.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstnoteexpressiontypes.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstparameters.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstpresetfile.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstrepresentation.cpp") +if(WIN32) + target_sources(vst3sdk PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_win32.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp") +elseif(APPLE) +else() + target_sources(vst3sdk PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_linux.cpp") +endif() +target_include_directories(vst3sdk PUBLIC "${VST3SDK_BASEDIR}") +target_link_libraries(vst3sdk PUBLIC Threads::Threads) +if(MINGW) + target_compile_definitions(vst3sdk PUBLIC + "_NATIVE_WCHAR_T_DEFINED=1" "__wchar_t=wchar_t") +endif() +set(_vst_release_build_types MinSizeRel Release RelWithDebInfo) +if(CMAKE_BUILD_TYPE IN_LIST _vst_release_build_types) + target_compile_definitions(vst3sdk PUBLIC "RELEASE") +else() + target_compile_definitions(vst3sdk PUBLIC "DEVELOPMENT") +endif() + function(plugin_add_vst3sdk NAME) - target_sources("${NAME}" PRIVATE - "${VST3SDK_BASEDIR}/base/source/baseiids.cpp" - "${VST3SDK_BASEDIR}/base/source/fbuffer.cpp" - "${VST3SDK_BASEDIR}/base/source/fdebug.cpp" - "${VST3SDK_BASEDIR}/base/source/fdynlib.cpp" - "${VST3SDK_BASEDIR}/base/source/fobject.cpp" - "${VST3SDK_BASEDIR}/base/source/fstreamer.cpp" - "${VST3SDK_BASEDIR}/base/source/fstring.cpp" - "${VST3SDK_BASEDIR}/base/source/timer.cpp" - "${VST3SDK_BASEDIR}/base/source/updatehandler.cpp" - "${VST3SDK_BASEDIR}/base/thread/source/fcondition.cpp" - "${VST3SDK_BASEDIR}/base/thread/source/flock.cpp" - "${VST3SDK_BASEDIR}/pluginterfaces/base/conststringtable.cpp" - "${VST3SDK_BASEDIR}/pluginterfaces/base/coreiids.cpp" - "${VST3SDK_BASEDIR}/pluginterfaces/base/funknown.cpp" - "${VST3SDK_BASEDIR}/pluginterfaces/base/ustring.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/common/commoniids.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/common/pluginview.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/main/pluginfactory.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstaudioeffect.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstbus.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstcomponent.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstcomponentbase.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vsteditcontroller.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstinitiids.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstnoteexpressiontypes.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstparameters.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstpresetfile.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstrepresentation.cpp") + target_link_libraries("${NAME}" PRIVATE vst3sdk) if(WIN32) target_sources("${NAME}" PRIVATE - "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_win32.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp" "${VST3SDK_BASEDIR}/public.sdk/source/main/dllmain.cpp") elseif(APPLE) target_sources("${NAME}" PRIVATE "${VST3SDK_BASEDIR}/public.sdk/source/main/macmain.cpp") else() target_sources("${NAME}" PRIVATE - "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_linux.cpp" "${VST3SDK_BASEDIR}/public.sdk/source/main/linuxmain.cpp") endif() - target_include_directories("${NAME}" PRIVATE "${VST3SDK_BASEDIR}") - target_link_libraries("${NAME}" PRIVATE Threads::Threads) - if(MINGW) - target_compile_definitions("${NAME}" PRIVATE - "_NATIVE_WCHAR_T_DEFINED=1" "__wchar_t=wchar_t") - endif() - - set(_vst_release_build_types MinSizeRel Release RelWithDebInfo) - - if(CMAKE_BUILD_TYPE IN_LIST _vst_release_build_types) - target_compile_definitions("${NAME}" PRIVATE "RELEASE") - else() - target_compile_definitions("${NAME}" PRIVATE "DEVELOPMENT") - endif() endfunction() # --- VSTGUI --- +add_library(vst3sdk_vstgui STATIC EXCLUDE_FROM_ALL + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstguieditor.cpp") +target_link_libraries(vst3sdk_vstgui PUBLIC vst3sdk sfizz::vstgui) +target_compile_definitions(vst3sdk_vstgui PRIVATE "SMTG_MODULE_IS_BUNDLE=1") + function(plugin_add_vstgui NAME) - target_link_libraries("${NAME}" PRIVATE sfizz::vstgui) - target_sources("${NAME}" PRIVATE "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstguieditor.cpp") - target_compile_definitions("${NAME}" PRIVATE "SMTG_MODULE_IS_BUNDLE=1") + target_link_libraries("${NAME}" PRIVATE vst3sdk_vstgui) endfunction() + +# --- Warning suppressions --- +foreach(_target vst3sdk_vstgui vst3sdk) + gw_target_warn("${_target}" PRIVATE + "-Wno-extra" + "-Wno-multichar" + "-Wno-reorder" + "-Wno-class-memaccess" + "-Wno-ignored-qualifiers" + "-Wno-unknown-pragmas" + "-Wno-unused-function" + "-Wno-unused-parameter" + "-Wno-unused-variable") +endforeach() From 5aa26b58bf2dd09e1dedd811807540deb5eabd67 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 8 Apr 2021 02:43:03 +0200 Subject: [PATCH 2/4] Make vst3 core a build-once target --- plugins/vst/CMakeLists.txt | 144 ++++++++++++++++------------------- plugins/vst/cmake/Vst3.cmake | 3 + 2 files changed, 68 insertions(+), 79 deletions(-) diff --git a/plugins/vst/CMakeLists.txt b/plugins/vst/CMakeLists.txt index 765ac8f5..ac4e90f2 100644 --- a/plugins/vst/CMakeLists.txt +++ b/plugins/vst/CMakeLists.txt @@ -13,61 +13,89 @@ configure_file(VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h") # Build VST3 SDK include("cmake/Vst3.cmake") -# Build the plugin -set(VSTPLUGIN_SOURCES - SfizzVstProcessor.cpp - SfizzVstController.cpp - SfizzVstEditor.cpp - SfizzVstState.cpp - SfizzVstUpdates.cpp - SfizzFileScan.cpp - SfizzForeignPaths.cpp - SfizzSettings.cpp - VstPluginFactory.cpp - X11RunLoop.cpp - NativeHelpers.cpp - FileTrie.cpp) +# Add the ring buffer +set(RINGBUFFER_HEADERS + "external/ring_buffer/ring_buffer/ring_buffer.h" + "external/ring_buffer/ring_buffer/ring_buffer.tcc") +add_library(sfizz-ring-buffer STATIC + "external/ring_buffer/ring_buffer/ring_buffer.cpp" + ${RINGBUFFER_HEADERS}) +source_group("Header Files" FILES ${RINGBUFFER_HEADERS}) +target_include_directories(sfizz-ring-buffer INTERFACE "external/ring_buffer") +add_library(sfizz::ring-buffer ALIAS sfizz-ring-buffer) -set(VSTPLUGIN_HEADERS +# Build the VST shared code +add_library(sfizz-vst3-core STATIC + SfizzVstProcessor.cpp SfizzVstProcessor.h + SfizzVstController.cpp SfizzVstController.h + SfizzVstEditor.cpp SfizzVstEditor.h + SfizzVstState.cpp SfizzVstState.h SfizzVstParameters.h SfizzVstUpdates.h + SfizzVstUpdates.cpp SfizzFileScan.h + SfizzFileScan.cpp SfizzForeignPaths.h + SfizzForeignPaths.cpp SfizzSettings.h - X11RunLoop.h - IdleUpdateHandler.h + SfizzSettings.cpp + FileTrie.h + FileTrie.cpp NativeHelpers.h - FileTrie.h) - + NativeHelpers.cpp + VstPluginFactory.cpp + IdleUpdateHandler.h + X11RunLoop.h + X11RunLoop.cpp) if(APPLE) - set(VSTPLUGIN_MAC_SOURCES + target_sources(sfizz-vst3-core PRIVATE SfizzForeignPaths.mm SfizzSettings.mm NativeHelpers.mm) - list(APPEND VSTPLUGIN_SOURCES ${VSTPLUGIN_MAC_SOURCES}) - set_property(SOURCE ${VSTPLUGIN_MAC_SOURCES} APPEND_STRING - PROPERTY COMPILE_FLAGS " -fobjc-arc") + set_property( + SOURCE SfizzForeignPaths.mm + SfizzSettings.mm + NativeHelpers.mm + APPEND_STRING + PROPERTY COMPILE_FLAGS " -fobjc-arc") endif() - -add_library(${VSTPLUGIN_PRJ_NAME} MODULE - ${VSTPLUGIN_HEADERS} - ${VSTPLUGIN_SOURCES}) - -if(WIN32) - target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def) -endif() -target_link_libraries(${VSTPLUGIN_PRJ_NAME} +target_include_directories(sfizz-vst3-core + PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") +target_link_libraries(sfizz-vst3-core PRIVATE PRIVATE sfizz::sfizz PRIVATE sfizz::import PRIVATE sfizz::editor PRIVATE sfizz::plugins-common - PRIVATE sfizz::pugixml sfizz::filesystem) -target_include_directories(${VSTPLUGIN_PRJ_NAME} - PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") + PRIVATE sfizz::pugixml sfizz::filesystem + PRIVATE sfizz::ring-buffer + vst3sdk + vst3sdk_vstgui) +gw_target_warn(sfizz-vst3-core PRIVATE + "-Wno-ignored-qualifiers" + "-Wno-unused-parameter") +add_library(sfizz::vst3-core ALIAS sfizz-vst3-core) + +# Link system dependencies +if(WIN32) +elseif(APPLE) +else() + find_package(PkgConfig REQUIRED) + pkg_check_modules(GLIB REQUIRED glib-2.0) + target_include_directories(sfizz-vst3-core PRIVATE ${GLIB_INCLUDE_DIRS}) + target_link_libraries(sfizz-vst3-core PRIVATE ${GLIB_LIBRARIES}) +endif() + +# Build the plugin +add_library(${VSTPLUGIN_PRJ_NAME} MODULE) +if(WIN32) + target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def) +endif() +target_link_libraries(${VSTPLUGIN_PRJ_NAME} + PRIVATE sfizz-vst3-core) set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}" PREFIX "") @@ -75,18 +103,6 @@ set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME}) plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME}) -# Add the ring buffer -set(RINGBUFFER_HEADERS - "external/ring_buffer/ring_buffer/ring_buffer.h" - "external/ring_buffer/ring_buffer/ring_buffer.tcc") -add_library(sfizz_ring_buffer STATIC - "external/ring_buffer/ring_buffer/ring_buffer.cpp" - ${RINGBUFFER_HEADERS}) -source_group("Header Files" FILES ${RINGBUFFER_HEADERS}) -target_include_directories(sfizz_ring_buffer INTERFACE "external/ring_buffer") - -target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer) - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version") @@ -96,17 +112,6 @@ if(MINGW) set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") endif() -# Link system dependencies -if(WIN32) -elseif(APPLE) - target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${APPLE_FOUNDATION_LIBRARY}) -else() - find_package(PkgConfig REQUIRED) - pkg_check_modules(GLIB REQUIRED glib-2.0) - target_include_directories(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_INCLUDE_DIRS}) - target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES}) -endif() - # Create the bundle(see "VST 3 Locations / Format") execute_process( COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources") @@ -145,10 +150,6 @@ else() DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}") endif() -gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE - "-Wno-ignored-qualifiers" - "-Wno-unused-parameter") - # To help debugging the link only if(FALSE) target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined") @@ -177,9 +178,7 @@ elseif(SFIZZ_AU) "${AUWRAPPER_BASEDIR}/aucocoaview.mm" "${AUWRAPPER_BASEDIR}/ausdk.mm" "${AUWRAPPER_BASEDIR}/auwrapper.mm" - "${AUWRAPPER_BASEDIR}/NSDataIBStream.mm" - ${VSTPLUGIN_HEADERS} - ${VSTPLUGIN_SOURCES}) + "${AUWRAPPER_BASEDIR}/NSDataIBStream.mm") target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${VST3SDK_BASEDIR}") target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE @@ -192,13 +191,7 @@ elseif(SFIZZ_AU) "${APPLE_COREMIDI_LIBRARY}") target_link_libraries(${AUPLUGIN_PRJ_NAME} - PRIVATE sfizz::sfizz - PRIVATE sfizz::import - PRIVATE sfizz::editor - PRIVATE sfizz::plugins-common - PRIVATE sfizz::pugixml sfizz::filesystem) - target_include_directories(${AUPLUGIN_PRJ_NAME} - PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") + PRIVATE sfizz-vst3-core) set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}" PREFIX "") @@ -249,9 +242,6 @@ elseif(SFIZZ_AU) "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/pluginterfacesupport.cpp" "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/processdata.cpp") - # Add the ring buffer - target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer) - # Add generated source file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include") @@ -314,10 +304,6 @@ elseif(SFIZZ_AU) "${AUWRAPPER_BASEDIR}/auresource.r") endif() - gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE - "-Wno-ignored-qualifiers" - "-Wno-unused-parameter") - # Installation if(AUPLUGIN_INSTALL_DIR) install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}" diff --git a/plugins/vst/cmake/Vst3.cmake b/plugins/vst/cmake/Vst3.cmake index c8aed3c2..2025c72b 100644 --- a/plugins/vst/cmake/Vst3.cmake +++ b/plugins/vst/cmake/Vst3.cmake @@ -41,6 +41,9 @@ else() endif() target_include_directories(vst3sdk PUBLIC "${VST3SDK_BASEDIR}") target_link_libraries(vst3sdk PUBLIC Threads::Threads) +if(APPLE) + target_link_libraries(vst3sdk PUBLIC ${APPLE_FOUNDATION_LIBRARY}) +endif() if(MINGW) target_compile_definitions(vst3sdk PUBLIC "_NATIVE_WCHAR_T_DEFINED=1" "__wchar_t=wchar_t") From 8849f3f4c0556c05c89ccf8f9178c57d16453b4c Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 8 Apr 2021 02:59:56 +0200 Subject: [PATCH 3/4] Move a VSTGUI helper in vst3sdk_vstgui --- plugins/vst/cmake/Vst3.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/vst/cmake/Vst3.cmake b/plugins/vst/cmake/Vst3.cmake index 2025c72b..0391b280 100644 --- a/plugins/vst/cmake/Vst3.cmake +++ b/plugins/vst/cmake/Vst3.cmake @@ -32,8 +32,7 @@ add_library(vst3sdk STATIC EXCLUDE_FROM_ALL "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstrepresentation.cpp") if(WIN32) target_sources(vst3sdk PRIVATE - "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_win32.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp") + "${VST3SDK_BASEDIR}/public.sdk/source/common/threadchecker_win32.cpp") elseif(APPLE) else() target_sources(vst3sdk PRIVATE @@ -72,6 +71,10 @@ endfunction() # --- VSTGUI --- add_library(vst3sdk_vstgui STATIC EXCLUDE_FROM_ALL "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstguieditor.cpp") +if(WIN32) + target_sources(vst3sdk_vstgui PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp") +endif() target_link_libraries(vst3sdk_vstgui PUBLIC vst3sdk sfizz::vstgui) target_compile_definitions(vst3sdk_vstgui PRIVATE "SMTG_MODULE_IS_BUNDLE=1") From a611d2261f9ba54f43eb4ee0d0c91ae274ff0961 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 8 Apr 2021 03:12:34 +0200 Subject: [PATCH 4/4] Make vst3sdk_hosting a library target --- plugins/vst/CMakeLists.txt | 7 +------ plugins/vst/cmake/Vst3.cmake | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/vst/CMakeLists.txt b/plugins/vst/CMakeLists.txt index ac4e90f2..c8226d82 100644 --- a/plugins/vst/CMakeLists.txt +++ b/plugins/vst/CMakeLists.txt @@ -235,12 +235,7 @@ elseif(SFIZZ_AU) "${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility") # Add VST hosting classes - target_sources(${AUPLUGIN_PRJ_NAME} PRIVATE - "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/eventlist.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/hostclasses.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/parameterchanges.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/pluginterfacesupport.cpp" - "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/processdata.cpp") + target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting) # Add generated source file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") diff --git a/plugins/vst/cmake/Vst3.cmake b/plugins/vst/cmake/Vst3.cmake index 0391b280..d1c6a7c3 100644 --- a/plugins/vst/cmake/Vst3.cmake +++ b/plugins/vst/cmake/Vst3.cmake @@ -68,6 +68,29 @@ function(plugin_add_vst3sdk NAME) endif() endfunction() +# --- VST3SDK hosting --- +add_library(vst3sdk_hosting STATIC EXCLUDE_FROM_ALL + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/connectionproxy.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/eventlist.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/hostclasses.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/parameterchanges.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/pluginterfacesupport.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/plugprovider.cpp" + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/processdata.cpp") +if(FALSE) + if(WIN32) + target_sources(vst3sdk_hosting PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/module_win32.cpp") + elseif(APPLE) + target_sources(vst3sdk_hosting PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/module_mac.mm") + else() + target_sources(vst3sdk_hosting PRIVATE + "${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/module_linux.cpp") + endif() +endif() +target_link_libraries(vst3sdk_hosting PUBLIC vst3sdk) + # --- VSTGUI --- add_library(vst3sdk_vstgui STATIC EXCLUDE_FROM_ALL "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstguieditor.cpp")