From 0533e2e64b98fecbbea1e7808729cb068ea980f5 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Fri, 21 May 2021 19:05:41 +0200 Subject: [PATCH] Compatibility with cmake 3.7 --- cmake/DPF-plugin.cmake | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake index 2ca933e4..c277b339 100644 --- a/cmake/DPF-plugin.cmake +++ b/cmake/DPF-plugin.cmake @@ -130,7 +130,9 @@ function(dpf__build_jack NAME DGL_LIBRARY) return() endif() - dpf__add_executable("${NAME}-jack") + dpf__create_dummy_source_list(_no_srcs) + + dpf__add_executable("${NAME}-jack" ${_no_srcs}) dpf__add_plugin_main("${NAME}-jack" "jack") dpf__add_ui_main("${NAME}-jack" "jack" "${DGL_LIBRARY}") target_link_libraries("${NAME}-jack" PRIVATE "${NAME}-dsp" "${NAME}-ui") @@ -149,7 +151,9 @@ endfunction() # Add build rules for a DSSI plugin. # function(dpf__build_ladspa NAME) - dpf__add_module("${NAME}-ladspa") + dpf__create_dummy_source_list(_no_srcs) + + dpf__add_module("${NAME}-ladspa" ${_no_srcs}) dpf__add_plugin_main("${NAME}-ladspa" "ladspa") target_link_libraries("${NAME}-ladspa" PRIVATE "${NAME}-dsp") set_target_properties("${NAME}-ladspa" PROPERTIES @@ -172,7 +176,9 @@ function(dpf__build_dssi NAME DGL_LIBRARY) return() endif() - dpf__add_module("${NAME}-dssi") + dpf__create_dummy_source_list(_no_srcs) + + dpf__add_module("${NAME}-dssi" ${_no_srcs}) dpf__add_plugin_main("${NAME}-dssi" "dssi") target_link_libraries("${NAME}-dssi" PRIVATE "${NAME}-dsp") set_target_properties("${NAME}-dssi" PROPERTIES @@ -181,7 +187,7 @@ function(dpf__build_dssi NAME DGL_LIBRARY) PREFIX "") if(DGL_LIBRARY) - dpf__add_executable("${NAME}-dssi-ui") + dpf__add_executable("${NAME}-dssi-ui" ${_no_srcs}) dpf__add_ui_main("${NAME}-dssi-ui" "dssi" "${DGL_LIBRARY}") target_link_libraries("${NAME}-dssi-ui" PRIVATE "${NAME}-ui") set_target_properties("${NAME}-dssi-ui" PROPERTIES @@ -200,7 +206,9 @@ endfunction() # Add build rules for a LV2 plugin. # function(dpf__build_lv2 NAME DGL_LIBRARY MONOLITHIC) - dpf__add_module("${NAME}-lv2") + dpf__create_dummy_source_list(_no_srcs) + + dpf__add_module("${NAME}-lv2" ${_no_srcs}) dpf__add_plugin_main("${NAME}-lv2" "lv2") target_link_libraries("${NAME}-lv2" PRIVATE "${NAME}-dsp") set_target_properties("${NAME}-lv2" PROPERTIES @@ -215,7 +223,7 @@ function(dpf__build_lv2 NAME DGL_LIBRARY MONOLITHIC) set_target_properties("${NAME}-lv2" PROPERTIES OUTPUT_NAME "${NAME}") else() - dpf__add_module("${NAME}-lv2-ui") + dpf__add_module("${NAME}-lv2-ui" ${_no_srcs}) dpf__add_ui_main("${NAME}-lv2-ui" "lv2" "${DGL_LIBRARY}") target_link_libraries("${NAME}-lv2-ui" PRIVATE "${NAME}-ui") set_target_properties("${NAME}-lv2-ui" PROPERTIES @@ -241,7 +249,9 @@ endfunction() # Add build rules for a VST plugin. # function(dpf__build_vst NAME DGL_LIBRARY) - dpf__add_module("${NAME}-vst") + dpf__create_dummy_source_list(_no_srcs) + + dpf__add_module("${NAME}-vst" ${_no_srcs}) dpf__add_plugin_main("${NAME}-vst" "vst") dpf__add_ui_main("${NAME}-vst" "vst" "${DGL_LIBRARY}") target_link_libraries("${NAME}-vst" PRIVATE "${NAME}-dsp" "${NAME}-ui") @@ -479,6 +489,20 @@ function(dpf__ensure_sources_non_empty VAR) set("${VAR}" "${_file}" PARENT_SCOPE) endfunction() +# dpf__create_dummy_source_list +# ------------------------------------------------------------------------------ +# +# Create a dummy source list which is equivalent to compiling nothing. +# This is only for compatibility with older CMake versions, which refuse to add +# targets without any sources. +# +macro(dpf__create_dummy_source_list VAR) + set("${VAR}") + if(CMAKE_VERSION VERSION_LESS "3.11") + dpf__ensure_sources_non_empty("${VAR}") + endif() +endmacro() + # dpf__warn_once # ------------------------------------------------------------------------------ #