Browse Source

Allow to control JACK/Standalone fallback behaviour from cmake

Signed-off-by: falkTX <falktx@falktx.com>
pull/506/head
falkTX 2 months ago
parent
commit
62582a3d57
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 17 additions and 5 deletions
  1. +17
    -5
      cmake/DPF-plugin.cmake

+ 17
- 5
cmake/DPF-plugin.cmake View File

@@ -104,6 +104,12 @@ include(CMakeParseArguments)
# `NO_SHARED_RESOURCES`
# do not build DPF shared resources (fonts, etc)
#
# `FORCE_NATIVE_AUDIO_FALLBACK`
# force the JACK/Standalone format to use native audio fallback instead of JACK
#
# `SKIP_NATIVE_AUDIO_FALLBACK`
# force the JACK/Standalone format to always use JACK, skipping native audio fallback
#
# `USE_FILE_BROWSER`
# enable file browser dialog APIs
#
@@ -111,7 +117,7 @@ include(CMakeParseArguments)
# enable web browser view APIs
#
function(dpf_add_plugin NAME)
set(options MONOLITHIC NO_SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW)
set(options MONOLITHIC NO_SHARED_RESOURCES FORCE_NATIVE_AUDIO_FALLBACK SKIP_NATIVE_AUDIO_FALLBACK USE_FILE_BROWSER USE_WEB_VIEW)
set(oneValueArgs MODGUI_CLASS_NAME UI_TYPE)
set(multiValueArgs FILES_COMMON FILES_DSP FILES_UI TARGETS)
cmake_parse_arguments(_dpf_plugin "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -231,7 +237,7 @@ function(dpf_add_plugin NAME)
###
foreach(_target ${_dpf_plugin_TARGETS})
if(_target STREQUAL "jack")
dpf__build_jack("${NAME}" "${_dgl_has_ui}")
dpf__build_jack("${NAME}" "${_dgl_has_ui}" "${_dpf_plugin_FORCE_NATIVE_AUDIO_FALLBACK}" "${_dpf_plugin_SKIP_NATIVE_AUDIO_FALLBACK}")
elseif(_target STREQUAL "ladspa")
dpf__build_ladspa("${NAME}")
elseif(_target STREQUAL "dssi")
@@ -387,7 +393,7 @@ endfunction()
#
# Add build rules for a JACK/Standalone program.
#
function(dpf__build_jack NAME HAS_UI)
function(dpf__build_jack NAME HAS_UI FORCE_NATIVE_AUDIO_FALLBACK SKIP_NATIVE_AUDIO_FALLBACK)
dpf__create_dummy_source_list(_no_srcs)

dpf__add_executable("${NAME}-jack" ${_no_srcs})
@@ -398,8 +404,14 @@ function(dpf__build_jack NAME HAS_UI)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>"
OUTPUT_NAME "${NAME}")

target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK")
target_compile_definitions("${NAME}-jack" PRIVATE "HAVE_GETTIMEOFDAY")
if(NOT FORCE_NATIVE_AUDIO_FALLBACK)
target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK")
target_compile_definitions("${NAME}-jack" PRIVATE "HAVE_GETTIMEOFDAY")
endif()

if(SKIP_NATIVE_AUDIO_FALLBACK)
return()
endif()

find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)


Loading…
Cancel
Save