commit a02804483534bfd83a619b57a38bb327c91fedd6
parent dd102f78c13d1164257e99ed91903d3e04840614
Author: Jean Pierre Cimalando <jp-dev@inbox.ru>
Date: Fri, 21 May 2021 18:14:50 +0200
cmake: do not strictly require liblo and jack
Diffstat:
1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake
@@ -122,6 +122,14 @@ endfunction()
# Add build rules for a JACK program.
#
function(dpf__build_jack NAME DGL_LIBRARY)
+ find_package(PkgConfig)
+ pkg_check_modules(JACK "jack")
+ if(NOT JACK_FOUND)
+ dpf__warn_once_only(missing_jack
+ "JACK is not found, skipping the `jack` plugin targets")
+ return()
+ endif()
+
dpf__add_executable("${NAME}-jack")
dpf__add_plugin_main("${NAME}-jack" "jack")
dpf__add_ui_main("${NAME}-jack" "jack" "${DGL_LIBRARY}")
@@ -130,9 +138,6 @@ function(dpf__build_jack NAME DGL_LIBRARY)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>"
OUTPUT_NAME "${NAME}")
- find_package(PkgConfig)
- pkg_check_modules(JACK "jack" REQUIRED)
-
target_include_directories("${NAME}-jack" PRIVATE ${JACK_INCLUDE_DIRS})
target_link_libraries("${NAME}-jack" PRIVATE ${JACK_LIBRARIES})
link_directories(${JACK_LIBRARY_DIRS})
@@ -159,7 +164,14 @@ endfunction()
# Add build rules for a DSSI plugin.
#
function(dpf__build_dssi NAME DGL_LIBRARY)
- # -- build for DSSI
+ find_package(PkgConfig)
+ pkg_check_modules(LIBLO "liblo")
+ if(NOT LIBLO_FOUND)
+ dpf__warn_once_only(missing_liblo
+ "liblo is not found, skipping the `dssi` plugin targets")
+ return()
+ endif()
+
dpf__add_module("${NAME}-dssi")
dpf__add_plugin_main("${NAME}-dssi" "dssi")
target_link_libraries("${NAME}-dssi" PRIVATE "${NAME}-dsp")
@@ -176,9 +188,6 @@ function(dpf__build_dssi NAME DGL_LIBRARY)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}-dssi/$<0:>"
OUTPUT_NAME "${NAME}_ui")
- find_package(PkgConfig)
- pkg_check_modules(LIBLO "liblo" REQUIRED)
-
target_include_directories("${NAME}-dssi-ui" PRIVATE ${LIBLO_INCLUDE_DIRS})
target_link_libraries("${NAME}-dssi-ui" PRIVATE ${LIBLO_LIBRARIES})
link_directories(${LIBLO_LIBRARY_DIRS})
@@ -469,3 +478,16 @@ function(dpf__ensure_sources_non_empty VAR)
endif()
set("${VAR}" "${_file}" PARENT_SCOPE)
endfunction()
+
+# dpf__warn_once
+# ------------------------------------------------------------------------------
+#
+# Prints a warning message once only.
+#
+function(dpf__warn_once_only TOKEN MESSAGE)
+ get_property(_warned GLOBAL PROPERTY "dpf__have_warned_${TOKEN}")
+ if(NOT _warned)
+ set_property(GLOBAL PROPERTY "dpf__have_warned_${TOKEN}" TRUE)
+ message(WARNING "${MESSAGE}")
+ endif()
+endfunction()