summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfalkTX <falktx@falktx.com>2022-11-04 16:29:20 +0000
committerfalkTX <falktx@falktx.com>2022-11-04 16:29:20 +0000
commit30cf55aa1570553947c0e5add45cf9e6bf4fe1e2 (patch)
tree56aa89f222905b3f5418f15dacca69ea59e90097
parentb52112bf23ef7eb91883828b27f12bb15cb671ac (diff)
Support clap in cmake, always define HAVE_JACK
Signed-off-by: falkTX <falktx@falktx.com>
-rw-r--r--cmake/DPF-plugin.cmake40
1 files changed, 38 insertions, 2 deletions
diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake
index e0f8edf1..12b883ee 100644
--- a/cmake/DPF-plugin.cmake
+++ b/cmake/DPF-plugin.cmake
@@ -22,7 +22,7 @@
# add_subdirectory(DPF)
#
# dpf_add_plugin(MyPlugin
-# TARGETS lv2 vst2 vst3
+# TARGETS clap lv2 vst2 vst3
# UI_TYPE opengl
# FILES_DSP
# src/MyPlugin.cpp
@@ -71,7 +71,7 @@ include(CMakeParseArguments)
#
# `TARGETS` <tgt1>...<tgtN>
# a list of one of more of the following target types:
-# `jack`, `ladspa`, `dssi`, `lv2`, `vst2`, `vst3`
+# `jack`, `ladspa`, `dssi`, `lv2`, `vst2`, `vst3`, `clap`
#
# `UI_TYPE` <type>
# the user interface type: `opengl` (default), `cairo`
@@ -162,6 +162,8 @@ function(dpf_add_plugin NAME)
dpf__build_vst2("${NAME}" "${_dgl_library}")
elseif(_target STREQUAL "vst3")
dpf__build_vst3("${NAME}" "${_dgl_library}")
+ elseif(_target STREQUAL "clap")
+ dpf__build_clap("${NAME}" "${_dgl_library}")
else()
message(FATAL_ERROR "Unrecognized target type for plugin: ${_target}")
endif()
@@ -432,6 +434,39 @@ function(dpf__build_vst3 NAME DGL_LIBRARY)
endif()
endfunction()
+# dpf__build_clap
+# ------------------------------------------------------------------------------
+#
+# Add build rules for a VST2 plugin.
+#
+function(dpf__build_clap NAME DGL_LIBRARY)
+ dpf__create_dummy_source_list(_no_srcs)
+
+ dpf__add_module("${NAME}-clap" ${_no_srcs})
+ dpf__add_plugin_main("${NAME}-clap" "clap")
+ dpf__add_ui_main("${NAME}-clap" "clap" "${DGL_LIBRARY}")
+ dpf__set_module_export_list("${NAME}-clap" "clap")
+ target_link_libraries("${NAME}-clap" PRIVATE "${NAME}-dsp" "${NAME}-ui")
+ set_target_properties("${NAME}-clap" PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>"
+ ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/clap/$<0:>"
+ OUTPUT_NAME "${NAME}"
+ PREFIX ""
+ SUFFIX ".clap")
+
+ if(APPLE)
+ set_target_properties("${NAME}-clap" PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents/MacOS/$<0:>"
+ OUTPUT_NAME "${NAME}"
+ SUFFIX "")
+ set(INFO_PLIST_PROJECT_NAME "${NAME}")
+ configure_file("${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/Info.plist"
+ "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents/Info.plist" @ONLY)
+ file(COPY "${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/PkgInfo"
+ DESTINATION "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents")
+ endif()
+endfunction()
+
# dpf__add_dgl_cairo
# ------------------------------------------------------------------------------
#
@@ -690,6 +725,7 @@ function(dpf__set_target_defaults NAME)
C_VISIBILITY_PRESET "hidden"
CXX_VISIBILITY_PRESET "hidden"
VISIBILITY_INLINES_HIDDEN TRUE)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK")
if(WIN32)
target_compile_definitions("${NAME}" PUBLIC "NOMINMAX")
endif()