Static link strategy for AudioUnit
This commit is contained in:
parent
0d6f1b0837
commit
bfbcdb2b43
5 changed files with 35 additions and 38 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -30,3 +30,6 @@
|
||||||
[submodule "external/st_audiofile/thirdparty/libaiff"]
|
[submodule "external/st_audiofile/thirdparty/libaiff"]
|
||||||
path = external/st_audiofile/thirdparty/libaiff
|
path = external/st_audiofile/thirdparty/libaiff
|
||||||
url = https://github.com/sfztools/libaiff.git
|
url = https://github.com/sfztools/libaiff.git
|
||||||
|
[submodule "vst/external/sfzt_auwrapper"]
|
||||||
|
path = vst/external/sfzt_auwrapper
|
||||||
|
url = https://github.com/sfztools/sfzt_auwrapper.git
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,6 @@ else
|
||||||
# code-sign AudioUnit and dylibs
|
# code-sign AudioUnit and dylibs
|
||||||
codesign --sign "${CODESIGN_IDENTITY}" --deep --keychain build.keychain --force --verbose \
|
codesign --sign "${CODESIGN_IDENTITY}" --deep --keychain build.keychain --force --verbose \
|
||||||
"${INSTALL_DIR}"/Library/Audio/Plug-Ins/Components/sfizz.component
|
"${INSTALL_DIR}"/Library/Audio/Plug-Ins/Components/sfizz.component
|
||||||
codesign --sign "${CODESIGN_IDENTITY}" --deep --keychain build.keychain --force --verbose \
|
|
||||||
"${INSTALL_DIR}"/Library/Audio/Plug-Ins/Components/sfizz.component/Contents/Resources/plugin.vst3
|
|
||||||
# code-sign LV2 and dylibs (note: manual, LV2 are not real bundles)
|
# code-sign LV2 and dylibs (note: manual, LV2 are not real bundles)
|
||||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
||||||
"${INSTALL_DIR}"/Library/Audio/Plug-Ins/LV2/sfizz.lv2/Contents/Binary/*.so
|
"${INSTALL_DIR}"/Library/Audio/Plug-Ins/LV2/sfizz.lv2/Contents/Binary/*.so
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ set (VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
||||||
set (VSTPLUGIN_BUNDLE_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 "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
|
||||||
|
|
||||||
# VST plugin specific settings
|
# VST plugin specific settings
|
||||||
include (VSTConfig)
|
include (VSTConfig)
|
||||||
|
|
@ -71,11 +73,13 @@ plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
||||||
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")
|
||||||
source_group ("Header Files" FILES ${RINGBUFFER_HEADERS})
|
add_library(sfizz_ring_buffer STATIC
|
||||||
target_include_directories(${VSTPLUGIN_PRJ_NAME} PRIVATE "external/ring_buffer")
|
|
||||||
target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
|
||||||
"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})
|
||||||
|
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")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
||||||
|
|
@ -174,11 +178,13 @@ elseif(SFIZZ_AU)
|
||||||
set(AUPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
set(AUPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
||||||
|
|
||||||
add_library(${AUPLUGIN_PRJ_NAME} MODULE
|
add_library(${AUPLUGIN_PRJ_NAME} MODULE
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/aucarbonview.mm"
|
"${AUWRAPPER_BASEDIR}/aucarbonview.mm"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/aucocoaview.mm"
|
"${AUWRAPPER_BASEDIR}/aucocoaview.mm"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/ausdk.mm"
|
"${AUWRAPPER_BASEDIR}/ausdk.mm"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/auwrapper.mm"
|
"${AUWRAPPER_BASEDIR}/auwrapper.mm"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/NSDataIBStream.mm")
|
"${AUWRAPPER_BASEDIR}/NSDataIBStream.mm"
|
||||||
|
${VSTPLUGIN_HEADERS}
|
||||||
|
${VSTPLUGIN_SOURCES})
|
||||||
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE
|
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||||
"${VST3SDK_BASEDIR}")
|
"${VST3SDK_BASEDIR}")
|
||||||
target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE
|
target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||||
|
|
@ -190,10 +196,19 @@ elseif(SFIZZ_AU)
|
||||||
"${APPLE_COREAUDIO_LIBRARY}"
|
"${APPLE_COREAUDIO_LIBRARY}"
|
||||||
"${APPLE_COREMIDI_LIBRARY}")
|
"${APPLE_COREMIDI_LIBRARY}")
|
||||||
|
|
||||||
|
target_link_libraries(${AUPLUGIN_PRJ_NAME}
|
||||||
|
PRIVATE ${PROJECT_NAME}::${PROJECT_NAME}
|
||||||
|
PRIVATE sfizz_editor
|
||||||
|
PRIVATE sfizz-pugixml)
|
||||||
|
target_include_directories(${AUPLUGIN_PRJ_NAME}
|
||||||
|
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
OUTPUT_NAME "${PROJECT_NAME}"
|
OUTPUT_NAME "${PROJECT_NAME}"
|
||||||
PREFIX "")
|
PREFIX "")
|
||||||
|
|
||||||
|
plugin_add_vst3sdk(${AUPLUGIN_PRJ_NAME})
|
||||||
|
plugin_add_vstgui(${AUPLUGIN_PRJ_NAME})
|
||||||
|
|
||||||
# Get Core Audio utility classes if missing
|
# Get Core Audio utility classes if missing
|
||||||
set(CA_UTILITY_BASEDIR
|
set(CA_UTILITY_BASEDIR
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/external/CoreAudioUtilityClasses")
|
"${CMAKE_CURRENT_SOURCE_DIR}/external/CoreAudioUtilityClasses")
|
||||||
|
|
@ -229,26 +244,6 @@ elseif(SFIZZ_AU)
|
||||||
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/Utility"
|
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/Utility"
|
||||||
"${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility")
|
"${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility")
|
||||||
|
|
||||||
# Add VST base classes
|
|
||||||
target_sources(${AUPLUGIN_PRJ_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/vst/vstinitiids.cpp")
|
|
||||||
|
|
||||||
# Add VST hosting classes
|
# Add VST hosting classes
|
||||||
target_sources(${AUPLUGIN_PRJ_NAME} PRIVATE
|
target_sources(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/eventlist.cpp"
|
"${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/eventlist.cpp"
|
||||||
|
|
@ -257,6 +252,9 @@ elseif(SFIZZ_AU)
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/pluginterfacesupport.cpp"
|
"${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/pluginterfacesupport.cpp"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/hosting/processdata.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
|
# Add generated source
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||||
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include")
|
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||||
|
|
@ -269,6 +267,9 @@ elseif(SFIZZ_AU)
|
||||||
# Create the bundle
|
# Create the bundle
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||||
|
copy_editor_resources(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||||
|
"${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||||
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
||||||
SUFFIX ""
|
SUFFIX ""
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
|
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
|
||||||
|
|
@ -315,7 +316,7 @@ elseif(SFIZZ_AU)
|
||||||
"-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h
|
"-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h
|
||||||
"-o" "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc"
|
"-o" "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc"
|
||||||
"-useDF"
|
"-useDF"
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/auresource.r")
|
"${AUWRAPPER_BASEDIR}/auresource.r")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
|
|
@ -336,14 +337,8 @@ elseif(SFIZZ_AU)
|
||||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}"
|
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}"
|
||||||
DESTINATION "${AUPLUGIN_INSTALL_DIR}"
|
DESTINATION "${AUPLUGIN_INSTALL_DIR}"
|
||||||
COMPONENT "au")
|
COMPONENT "au")
|
||||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/"
|
|
||||||
DESTINATION "${AUPLUGIN_INSTALL_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/plugin.vst3"
|
|
||||||
COMPONENT "au")
|
|
||||||
bundle_dylibs(au
|
bundle_dylibs(au
|
||||||
"${AUPLUGIN_INSTALL_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
|
"${AUPLUGIN_INSTALL_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
|
||||||
COMPONENT "au")
|
COMPONENT "au")
|
||||||
bundle_dylibs(au-vst
|
|
||||||
"${AUPLUGIN_INSTALL_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/plugin.vst3/Contents/MacOS/sfizz"
|
|
||||||
COMPONENT "au")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ function(plugin_add_vst3sdk NAME)
|
||||||
"${VST3SDK_BASEDIR}/base/source/fobject.cpp"
|
"${VST3SDK_BASEDIR}/base/source/fobject.cpp"
|
||||||
"${VST3SDK_BASEDIR}/base/source/fstreamer.cpp"
|
"${VST3SDK_BASEDIR}/base/source/fstreamer.cpp"
|
||||||
"${VST3SDK_BASEDIR}/base/source/fstring.cpp"
|
"${VST3SDK_BASEDIR}/base/source/fstring.cpp"
|
||||||
# "${VST3SDK_BASEDIR}/base/source/timer.cpp"
|
"${VST3SDK_BASEDIR}/base/source/timer.cpp"
|
||||||
"${VST3SDK_BASEDIR}/base/source/updatehandler.cpp"
|
"${VST3SDK_BASEDIR}/base/source/updatehandler.cpp"
|
||||||
"${VST3SDK_BASEDIR}/base/thread/source/fcondition.cpp"
|
"${VST3SDK_BASEDIR}/base/thread/source/fcondition.cpp"
|
||||||
"${VST3SDK_BASEDIR}/base/thread/source/flock.cpp"
|
"${VST3SDK_BASEDIR}/base/thread/source/flock.cpp"
|
||||||
|
|
|
||||||
1
vst/external/sfzt_auwrapper
vendored
Submodule
1
vst/external/sfzt_auwrapper
vendored
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 014311ae45b86571e1ae3aaa03ebbd7db8b3a32e
|
||||||
Loading…
Add table
Reference in a new issue