sfizz-ui/plugins/vst/CMakeLists.txt
2024-02-23 03:40:58 +01:00

96 lines
2.5 KiB
CMake

list(APPEND CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
)
if(SFIZZ_USE_SYSTEM_VST3SDK)
find_package(PkgConfig REQUIRED)
pkg_check_modules(VST3SDK "vst3sdk" REQUIRED)
set(VST3SDK_BASEDIR "${VST3SDK_INCLUDE_DIRS}")
else()
set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
endif()
# VST plugin specific settings
include(VSTConfig)
configure_file(VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h")
# Build VST3 SDK
include(VST3SDK)
# Add the ring buffer
set(RINGBUFFER_SOURCES
"external/ring_buffer/ring_buffer/ring_buffer.h"
"external/ring_buffer/ring_buffer/ring_buffer.tcc"
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
)
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
source_group("" FILES ${RINGBUFFER_SOURCES})
endif()
add_library(plugins_ring_buffer STATIC EXCLUDE_FROM_ALL ${RINGBUFFER_SOURCES})
target_include_directories(plugins_ring_buffer PUBLIC "external/ring_buffer")
add_library(plugins::ring-buffer ALIAS plugins_ring_buffer)
# Build the VST shared code
set(VST3_CORE_SOURCES
SfizzVstProcessor.cpp
SfizzVstProcessor.h
SfizzVstController.cpp
SfizzVstController.h
SfizzVstEditor.cpp
SfizzVstEditor.h
SfizzVstState.cpp
SfizzVstState.h
SfizzVstParameters.h
SfizzVstUpdates.h
SfizzVstUpdates.hpp
SfizzVstUpdates.cpp
SfizzVstIDs.h
OrderedEventProcessor.h
OrderedEventProcessor.hpp
IdleUpdateHandler.h
X11RunLoop.h
X11RunLoop.cpp
)
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
source_group("" FILES ${VST3_CORE_SOURCES})
endif()
add_library(plugins_vst3_core STATIC EXCLUDE_FROM_ALL ${VST3_CORE_SOURCES})
target_include_directories(plugins_vst3_core PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
target_link_libraries(plugins_vst3_core PRIVATE
sfizz::sfizz
sfizz::filesystem
sfizz::import
sfizz::pugixml
plugins::common
plugins::editor
plugins::ring-buffer
absl::strings
absl::optional
absl::container_common
vst3sdk
vst3sdk_vstgui
)
gw_target_warn(plugins_vst3_core PRIVATE
"-Wno-ignored-qualifiers"
"-Wno-unused-parameter")
add_library(plugins::vst3_core ALIAS plugins_vst3_core)
# --- VST3 plugin --- #
if(PLUGIN_VST3)
include(VST3Plugin)
endif()
# --- Audio Unit wrapper --- #
if(PLUGIN_AU AND NOT APPLE)
message(WARNING "Audio Unit is available only for macOS builds")
elseif(PLUGIN_AU)
include(AU2Plugin)
endif()
# --- VST2 wrapper --- #
if(PLUGIN_VST2)
include(VST2Plugin)
endif()