87 lines
3.4 KiB
CMake
87 lines
3.4 KiB
CMake
set(VST3_PLUGIN_PRJ_NAME "plugins_vst3")
|
|
set(VST3_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
|
|
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
|
source_group("" FILES VstPluginFactory.cpp)
|
|
endif()
|
|
|
|
add_library(${VST3_PLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
|
|
|
|
if(WIN32)
|
|
target_sources(${VST3_PLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
|
endif()
|
|
|
|
target_include_directories(${VST3_PLUGIN_PRJ_NAME}
|
|
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
|
target_link_libraries(${VST3_PLUGIN_PRJ_NAME}
|
|
PRIVATE plugins_vst3_core)
|
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
|
OUTPUT_NAME "${PROJECT_NAME}"
|
|
PREFIX "")
|
|
|
|
plugin_add_vst3sdk(${VST3_PLUGIN_PRJ_NAME})
|
|
plugin_add_vstgui(${VST3_PLUGIN_PRJ_NAME})
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
target_link_libraries(${VST3_PLUGIN_PRJ_NAME} PRIVATE
|
|
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
|
|
endif()
|
|
sfizz_enable_lto_if_needed(${VST3_PLUGIN_PRJ_NAME})
|
|
if(MINGW)
|
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
|
endif()
|
|
|
|
# Create the bundle(see "VST 3 Locations / Format")
|
|
execute_process(
|
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
copy_editor_resources(
|
|
${VST3_PLUGIN_PRJ_NAME}
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
|
"${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
|
if(WIN32)
|
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
|
SUFFIX ".vst3"
|
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_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}/${VST3_PLUGIN_BUNDLE_NAME}")
|
|
elseif(APPLE)
|
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
|
SUFFIX ""
|
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
|
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo"
|
|
DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_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}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY)
|
|
else()
|
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_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}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
|
|
else()
|
|
file(COPY "gpl-3.0.txt"
|
|
DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}")
|
|
endif()
|
|
|
|
# To help debugging the link only
|
|
if(FALSE)
|
|
target_link_options(${VST3_PLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
|
endif()
|
|
|
|
# Installation
|
|
if(NOT MSVC)
|
|
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}"
|
|
DESTINATION "${VST3_PLUGIN_INSTALL_DIR}"
|
|
COMPONENT "vst"
|
|
USE_SOURCE_PERMISSIONS)
|
|
bundle_dylibs(vst
|
|
"${VST3_PLUGIN_INSTALL_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
|
|
COMPONENT "vst")
|
|
endif()
|