2023-05-08 14:43:33 +02:00
|
|
|
# Puredata plugin specific settings
|
|
|
|
|
include(PuredataConfig)
|
|
|
|
|
|
|
|
|
|
set(PUREDATA_BINARY_DIR "${PROJECT_BINARY_DIR}/pd/sfizz")
|
|
|
|
|
|
|
|
|
|
set(PUREDATA_RESOURCES
|
|
|
|
|
"sfizz~-help.pd"
|
|
|
|
|
"example.sfz")
|
|
|
|
|
|
|
|
|
|
function(copy_puredata_resources TARGET SOURCE_DIR DESTINATION_DIR)
|
|
|
|
|
set(_deps)
|
|
|
|
|
foreach(res ${PUREDATA_RESOURCES})
|
|
|
|
|
get_filename_component(_dir "${res}" DIRECTORY)
|
|
|
|
|
file(MAKE_DIRECTORY "${DESTINATION_DIR}/${_dir}")
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT "${DESTINATION_DIR}/${res}"
|
|
|
|
|
COMMAND "${CMAKE_COMMAND}" "-E" "copy"
|
|
|
|
|
"${SOURCE_DIR}/${res}" "${DESTINATION_DIR}/${res}"
|
|
|
|
|
DEPENDS "${SOURCE_DIR}/${res}")
|
|
|
|
|
list(APPEND _deps "${DESTINATION_DIR}/${res}")
|
|
|
|
|
endforeach()
|
|
|
|
|
add_custom_target("${TARGET}_puredata_resources" DEPENDS ${_deps})
|
|
|
|
|
add_dependencies("${TARGET}" "${TARGET}_puredata_resources")
|
|
|
|
|
endfunction()
|
|
|
|
|
|
2024-01-10 14:42:31 +01:00
|
|
|
add_pd_external(plugins_puredata "sfizz_puredata.c")
|
|
|
|
|
|
|
|
|
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
|
|
|
|
source_group("" FILES sfizz_puredata.c)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_compile_definitions(plugins_puredata PRIVATE
|
2023-05-20 16:21:00 +02:00
|
|
|
"MIDI_CC_COUNT=${MIDI_CC_COUNT}"
|
2024-01-04 09:57:29 +01:00
|
|
|
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\""
|
|
|
|
|
)
|
2024-01-10 14:42:31 +01:00
|
|
|
target_link_libraries(plugins_puredata PRIVATE
|
2024-01-04 09:57:29 +01:00
|
|
|
sfizz::import
|
|
|
|
|
sfizz::sfizz
|
|
|
|
|
plugins::git_build_id
|
|
|
|
|
)
|
2024-01-10 14:42:31 +01:00
|
|
|
set_target_properties(plugins_puredata PROPERTIES
|
2023-05-08 14:43:33 +02:00
|
|
|
OUTPUT_NAME "sfizz"
|
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
|
|
|
|
|
|
|
|
|
|
if(MINGW)
|
2024-01-10 14:42:31 +01:00
|
|
|
set_property(TARGET plugins_puredata APPEND_STRING
|
2023-05-08 14:43:33 +02:00
|
|
|
PROPERTY LINK_FLAGS " -static")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Copy resources
|
2024-01-10 14:42:31 +01:00
|
|
|
copy_puredata_resources(plugins_puredata
|
2023-05-08 14:43:33 +02:00
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
|
|
|
|
"${PUREDATA_BINARY_DIR}")
|
|
|
|
|
|
|
|
|
|
# Installation
|
|
|
|
|
if(NOT MSVC)
|
2023-05-20 16:21:00 +02:00
|
|
|
install(DIRECTORY "${PUREDATA_BINARY_DIR}" DESTINATION "${PD_PLUGIN_INSTALL_DIR}"
|
2023-05-08 14:43:33 +02:00
|
|
|
COMPONENT "puredata"
|
|
|
|
|
USE_SOURCE_PERMISSIONS)
|
|
|
|
|
bundle_dylibs(puredata
|
2023-05-20 16:21:00 +02:00
|
|
|
"${PD_PLUGIN_INSTALL_DIR}/sfizz/sfizz${PUREDATA_SUFFIX}"
|
2023-05-08 14:43:33 +02:00
|
|
|
COMPONENT "puredata")
|
|
|
|
|
endif()
|