commit a8c8547a4533885086e869b56b82c279f38f7086
parent 4b180f0b9ab3bef54f47fdfa448818b408181151
Author: falkTX <falktx@falktx.com>
Date: Wed, 16 Nov 2022 17:52:29 +0000
Enable standalone native audio fallback for cmake builds
Diffstat:
1 file changed, 42 insertions(+), 6 deletions(-)
diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake
@@ -181,7 +181,7 @@ endfunction()
# dpf__build_jack
# ------------------------------------------------------------------------------
#
-# Add build rules for a JACK program.
+# Add build rules for a JACK/Standalone program.
#
function(dpf__build_jack NAME DGL_LIBRARY)
dpf__create_dummy_source_list(_no_srcs)
@@ -194,11 +194,48 @@ function(dpf__build_jack NAME DGL_LIBRARY)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>"
OUTPUT_NAME "${NAME}")
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK")
+
+ find_package(PkgConfig)
+ pkg_check_modules(SDL2 "sdl2")
+ if(SDL2_FOUND)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_SDL2")
+ target_include_directories("${NAME}-jack" PRIVATE ${SDL2_INCLUDE_DIRS})
+ target_link_directories("${NAME}-jack" PUBLIC ${SDL2_LIBRARY_DIRS})
+ target_link_libraries("${NAME}-jack" PRIVATE ${SDL2_LIBRARIES})
+ endif()
+
+ if(APPLE OR WIN32)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_RTAUDIO")
+ else()
+ pkg_check_modules(ALSA "alsa")
+ pkg_check_modules(PULSEAUDIO "libpulse-simple")
+ if(ALSA_FOUND)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_ALSA")
+ target_include_directories("${NAME}-jack" PRIVATE ${ALSA_INCLUDE_DIRS})
+ target_link_directories("${NAME}-jack" PUBLIC ${ALSA_LIBRARY_DIRS})
+ target_link_libraries("${NAME}-jack" PRIVATE ${ALSA_LIBRARIES})
+ endif()
+ if(PULSEAUDIO_FOUND)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_PULSEAUDIO")
+ target_include_directories("${NAME}-jack" PRIVATE ${PULSEAUDIO_INCLUDE_DIRS})
+ target_link_directories("${NAME}-jack" PUBLIC ${PULSEAUDIO_LIBRARY_DIRS})
+ target_link_libraries("${NAME}-jack" PRIVATE ${PULSEAUDIO_LIBRARIES})
+ endif()
+ if(ALSA_FOUND OR PULSEAUDIO_FOUND)
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_RTAUDIO")
+ endif()
+ endif()
+
# for RtAudio native fallback
if(APPLE)
find_library(APPLE_COREAUDIO_FRAMEWORK "CoreAudio")
find_library(APPLE_COREFOUNDATION_FRAMEWORK "CoreFoundation")
- target_link_libraries("${NAME}-jack" PRIVATE "${APPLE_COREAUDIO_FRAMEWORK}" "${APPLE_COREFOUNDATION_FRAMEWORK}")
+ find_library(APPLE_COREMIDI_FRAMEWORK "CoreMIDI")
+ target_link_libraries("${NAME}-jack" PRIVATE
+ "${APPLE_COREAUDIO_FRAMEWORK}"
+ "${APPLE_COREFOUNDATION_FRAMEWORK}"
+ "${APPLE_COREMIDI_FRAMEWORK}")
endif()
endfunction()
@@ -235,8 +272,6 @@ function(dpf__build_dssi NAME DGL_LIBRARY)
return()
endif()
- link_directories(${LIBLO_LIBRARY_DIRS})
-
dpf__create_dummy_source_list(_no_srcs)
dpf__add_module("${NAME}-dssi" ${_no_srcs})
@@ -257,7 +292,9 @@ function(dpf__build_dssi NAME DGL_LIBRARY)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}-dssi/$<0:>"
OUTPUT_NAME "${NAME}_ui")
+ target_compile_definitions("${NAME}" PUBLIC "HAVE_LIBLO")
target_include_directories("${NAME}-dssi-ui" PRIVATE ${LIBLO_INCLUDE_DIRS})
+ target_link_directories("${NAME}-dssi-ui" PUBLIC ${LIBLO_LIBRARY_DIRS})
target_link_libraries("${NAME}-dssi-ui" PRIVATE ${LIBLO_LIBRARIES})
endif()
endfunction()
@@ -508,7 +545,7 @@ function(dpf__add_dgl_cairo NO_SHARED_RESOURCES)
target_sources(dgl-cairo PRIVATE
"${DPF_ROOT_DIR}/dgl/src/pugl.cpp")
else()
- target_sources(dgl-opengl PRIVATE
+ target_sources(dgl-cairo PRIVATE
"${DPF_ROOT_DIR}/dgl/src/pugl.mm")
endif()
target_include_directories(dgl-cairo PUBLIC
@@ -733,7 +770,6 @@ 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()