69 lines
2.5 KiB
CMake
69 lines
2.5 KiB
CMake
set(VST2_PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst2")
|
|
set(VST2_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst2")
|
|
|
|
set(VST2SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/vstsdk2.4")
|
|
set(VST2WRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK/public.sdk/source/vst/vst2wrapper")
|
|
|
|
if(NOT EXISTS "${VST2SDK_BASEDIR}/pluginterfaces/vst2.x/aeffect.h")
|
|
message(FATAL_ERROR "VST SDK 2.4 is missing. Make it available in the following folder: ${VST2SDK_BASEDIR}")
|
|
endif()
|
|
|
|
add_library(${VST2_PLUGIN_PRJ_NAME} MODULE
|
|
"VstPluginFactory.cpp"
|
|
"Vst2PluginFactory.cpp"
|
|
"Vst2PluginEntry.c"
|
|
"${VST2WRAPPER_BASEDIR}/vst2wrapper.cpp"
|
|
"${VST2WRAPPER_BASEDIR}/../basewrapper/basewrapper.cpp"
|
|
"${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffect.cpp"
|
|
"${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffectx.cpp")
|
|
target_include_directories(${VST2_PLUGIN_PRJ_NAME} PRIVATE
|
|
"${CMAKE_CURRENT_BINARY_DIR}"
|
|
"${VST2SDK_BASEDIR}")
|
|
|
|
if(NOT WIN32)
|
|
target_compile_definitions(${VST2_PLUGIN_PRJ_NAME} PRIVATE "__cdecl=")
|
|
endif()
|
|
|
|
target_link_libraries(${VST2_PLUGIN_PRJ_NAME}
|
|
PRIVATE plugins_vst3_core)
|
|
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
|
OUTPUT_NAME "${PROJECT_NAME}"
|
|
PREFIX "")
|
|
|
|
plugin_add_vst3sdk(${VST2_PLUGIN_PRJ_NAME})
|
|
plugin_add_vstgui(${VST2_PLUGIN_PRJ_NAME})
|
|
|
|
# Add VST hosting classes
|
|
target_link_libraries(${VST2_PLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting)
|
|
|
|
sfizz_enable_lto_if_needed(${VST2_PLUGIN_PRJ_NAME})
|
|
|
|
# Create the bundle
|
|
execute_process(
|
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
copy_editor_resources(
|
|
${VST2_PLUGIN_PRJ_NAME}
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
|
"${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Binary/$<0:>")
|
|
|
|
file(COPY "gpl-3.0.txt"
|
|
DESTINATION "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}")
|
|
|
|
if(MINGW)
|
|
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
|
endif()
|
|
|
|
# Installation
|
|
if(VST2_PLUGIN_INSTALL_DIR)
|
|
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}"
|
|
DESTINATION "${VST2_PLUGIN_INSTALL_DIR}"
|
|
COMPONENT "vst2"
|
|
USE_SOURCE_PERMISSIONS)
|
|
if(APPLE)
|
|
bundle_dylibs(vst2
|
|
"${VST2_PLUGIN_INSTALL_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Binary/sfizz.${CMAKE_SHARED_MODULE_SUFFIX}"
|
|
COMPONENT "vst2")
|
|
endif()
|
|
endif()
|