Merge pull request #808 from jpcima/vst3core
Organizational changes around vst3-core
This commit is contained in:
commit
9ada0be6d7
2 changed files with 81 additions and 82 deletions
|
|
@ -45,7 +45,7 @@ else()
|
||||||
target_link_libraries(plugins-common PRIVATE ${GLIB_LIBRARIES})
|
target_link_libraries(plugins-common PRIVATE ${GLIB_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((SFIZZ_LV2 AND SFIZZ_LV2_UI) OR SFIZZ_VST)
|
if((SFIZZ_LV2 AND SFIZZ_LV2_UI) OR SFIZZ_VST OR SFIZZ_AU OR SFIZZ_VST2)
|
||||||
add_subdirectory(editor)
|
add_subdirectory(editor)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -53,10 +53,6 @@ if(SFIZZ_LV2)
|
||||||
add_subdirectory(lv2)
|
add_subdirectory(lv2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SFIZZ_VST)
|
if(SFIZZ_VST OR SFIZZ_AU OR SFIZZ_VST2)
|
||||||
add_subdirectory(vst)
|
add_subdirectory(vst)
|
||||||
else()
|
|
||||||
if(SFIZZ_AU)
|
|
||||||
message(WARNING "Audio Unit requires VST to be enabled")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
|
||||||
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
|
||||||
|
|
||||||
set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
|
set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
|
||||||
#set(AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper")
|
#set(AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper")
|
||||||
set(AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
|
set(AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
|
||||||
|
|
@ -17,15 +14,15 @@ include("cmake/Vst3.cmake")
|
||||||
set(RINGBUFFER_HEADERS
|
set(RINGBUFFER_HEADERS
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.tcc")
|
"external/ring_buffer/ring_buffer/ring_buffer.tcc")
|
||||||
add_library(sfizz-ring-buffer STATIC
|
add_library(sfizz-ring-buffer STATIC EXCLUDE_FROM_ALL
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
||||||
${RINGBUFFER_HEADERS})
|
${RINGBUFFER_HEADERS})
|
||||||
source_group("Header Files" FILES ${RINGBUFFER_HEADERS})
|
source_group("Header Files" FILES ${RINGBUFFER_HEADERS})
|
||||||
target_include_directories(sfizz-ring-buffer INTERFACE "external/ring_buffer")
|
target_include_directories(sfizz-ring-buffer PUBLIC "external/ring_buffer")
|
||||||
add_library(sfizz::ring-buffer ALIAS sfizz-ring-buffer)
|
add_library(sfizz::ring-buffer ALIAS sfizz-ring-buffer)
|
||||||
|
|
||||||
# Build the VST shared code
|
# Build the VST shared code
|
||||||
add_library(sfizz-vst3-core STATIC
|
add_library(sfizz-vst3-core STATIC EXCLUDE_FROM_ALL
|
||||||
SfizzVstProcessor.cpp
|
SfizzVstProcessor.cpp
|
||||||
SfizzVstProcessor.h
|
SfizzVstProcessor.h
|
||||||
SfizzVstController.cpp
|
SfizzVstController.cpp
|
||||||
|
|
@ -60,82 +57,88 @@ gw_target_warn(sfizz-vst3-core PRIVATE
|
||||||
"-Wno-unused-parameter")
|
"-Wno-unused-parameter")
|
||||||
add_library(sfizz::vst3-core ALIAS sfizz-vst3-core)
|
add_library(sfizz::vst3-core ALIAS sfizz-vst3-core)
|
||||||
|
|
||||||
# Build the plugin
|
# --- VST3 plugin --- #
|
||||||
add_library(${VSTPLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
|
|
||||||
if(WIN32)
|
|
||||||
target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
|
||||||
endif()
|
|
||||||
target_include_directories(${VSTPLUGIN_PRJ_NAME}
|
|
||||||
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME}
|
|
||||||
PRIVATE sfizz-vst3-core)
|
|
||||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
|
||||||
OUTPUT_NAME "${PROJECT_NAME}"
|
|
||||||
PREFIX "")
|
|
||||||
|
|
||||||
plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
|
if(SFIZZ_VST)
|
||||||
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
||||||
|
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
||||||
|
|
||||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
add_library(${VSTPLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
if(WIN32)
|
||||||
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
|
target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
||||||
endif()
|
endif()
|
||||||
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
|
target_include_directories(${VSTPLUGIN_PRJ_NAME}
|
||||||
if(MINGW)
|
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME}
|
||||||
endif()
|
PRIVATE sfizz-vst3-core)
|
||||||
|
|
||||||
# Create the bundle(see "VST 3 Locations / Format")
|
|
||||||
execute_process(
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
||||||
copy_editor_resources(
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
|
||||||
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
||||||
if(WIN32)
|
|
||||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
SUFFIX ".vst3"
|
OUTPUT_NAME "${PROJECT_NAME}"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-win/$<0:>")
|
PREFIX "")
|
||||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/win/Plugin.ico"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/win/desktop.ini"
|
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
|
||||||
elseif(APPLE)
|
|
||||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
|
||||||
SUFFIX ""
|
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
|
|
||||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo"
|
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents")
|
|
||||||
set(SFIZZ_VST3_BUNDLE_EXECUTABLE "${PROJECT_NAME}")
|
|
||||||
set(SFIZZ_VST3_BUNDLE_VERSION "${PROJECT_VERSION}")
|
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.vst3.plist"
|
|
||||||
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY)
|
|
||||||
else()
|
|
||||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Copy the license
|
plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
|
||||||
if(APPLE)
|
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
||||||
# on macOS, files are not permitted at the bundle root, during code signing
|
|
||||||
file(COPY "gpl-3.0.txt"
|
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
|
|
||||||
else()
|
|
||||||
file(COPY "gpl-3.0.txt"
|
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# To help debugging the link only
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
if(FALSE)
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
||||||
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
|
||||||
endif()
|
endif()
|
||||||
|
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
|
||||||
|
if(MINGW)
|
||||||
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Installation
|
# Create the bundle(see "VST 3 Locations / Format")
|
||||||
if(NOT MSVC)
|
execute_process(
|
||||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||||
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
|
copy_editor_resources(
|
||||||
COMPONENT "vst")
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||||
bundle_dylibs(vst
|
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||||
"${VSTPLUGIN_INSTALL_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
|
if(WIN32)
|
||||||
COMPONENT "vst")
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
|
SUFFIX ".vst3"
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-win/$<0:>")
|
||||||
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/win/Plugin.ico"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/win/desktop.ini"
|
||||||
|
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
||||||
|
elseif(APPLE)
|
||||||
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
|
SUFFIX ""
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
|
||||||
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo"
|
||||||
|
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents")
|
||||||
|
set(SFIZZ_VST3_BUNDLE_EXECUTABLE "${PROJECT_NAME}")
|
||||||
|
set(SFIZZ_VST3_BUNDLE_VERSION "${PROJECT_VERSION}")
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.vst3.plist"
|
||||||
|
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY)
|
||||||
|
else()
|
||||||
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Copy the license
|
||||||
|
if(APPLE)
|
||||||
|
# on macOS, files are not permitted at the bundle root, during code signing
|
||||||
|
file(COPY "gpl-3.0.txt"
|
||||||
|
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
|
||||||
|
else()
|
||||||
|
file(COPY "gpl-3.0.txt"
|
||||||
|
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# To help debugging the link only
|
||||||
|
if(FALSE)
|
||||||
|
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
if(NOT MSVC)
|
||||||
|
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
|
||||||
|
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
|
||||||
|
COMPONENT "vst")
|
||||||
|
bundle_dylibs(vst
|
||||||
|
"${VSTPLUGIN_INSTALL_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
|
||||||
|
COMPONENT "vst")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# --- Audio Unit wrapper --- #
|
# --- Audio Unit wrapper --- #
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue