-if (CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
- message(STATUS "NetBSD detected, using OSS")
- find_package(Threads REQUIRED CMAKE_THREAD_PREFER_PTHREAD)
- list(APPEND LINKLIBS ossaudio ${CMAKE_THREAD_LIBS_INIT})
- set(AUDIO_LINUX_OSS ON)
-elseif (UNIX AND NOT APPLE)
- if (NOT AUDIO_LINUX_PULSE AND NOT AUDIO_LINUX_ALSA AND NOT AUDIO_LINUX_OSS AND NOT AUDIO_UNIX_JACK)
- set(AUDIO_LINUX_ALSA ON)
- endif()
-
- if (AUDIO_LINUX_PULSE)
- find_library(PULSE_LIB pulse)
- find_library(PULSESIMPLE_LIB pulse-simple)
- find_package(Threads REQUIRED CMAKE_THREAD_PREFER_PTHREAD)
- list(APPEND LINKLIBS ${PULSE_LIB} ${PULSESIMPLE_LIB} ${CMAKE_THREAD_LIBS_INIT})
- add_definitions(-D__LINUX_PULSE__)
- message(STATUS "Using Linux PulseAudio")
- endif (AUDIO_LINUX_PULSE)
- if (AUDIO_LINUX_ALSA)
- find_package(ALSA)
- find_package(Threads REQUIRED CMAKE_THREAD_PREFER_PTHREAD)
- if (NOT ALSA_FOUND)
- message(FATAL_ERROR "ALSA API requested but no ALSA dev libraries found")
- endif()
- include_directories(${ALSA_INCLUDE_DIR})
- list(APPEND LINKLIBS ${ALSA_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
- add_definitions(-D__LINUX_ALSA__)
- message(STATUS "Using Linux ALSA")
- endif (AUDIO_LINUX_ALSA)
-endif ()
+set(PKGCONFIG_REQUIRES)
+set(API_DEFS)
+set(API_LIST)
+
+# Tweak API-specific configuration.
+
+# Jack
+if (RTAUDIO_API_JACK AND jack_FOUND)
+ set(NEED_PTHREAD ON)
+ list(APPEND PKGCONFIG_REQUIRES "jack")
+ list(APPEND API_DEFS "-D__UNIX_JACK__")
+ list(APPEND API_LIST "jack")
+ if(jack_FOUND)
+ list(APPEND LINKLIBS ${jack_LIBRARIES})
+ list(APPEND INCDIRS ${jack_INCLUDEDIR})
+ else()
+ list(APPEND LINKLIBS ${JACK_LIB})
+ endif()
+endif()
+
+# ALSA
+if (RTAUDIO_API_ALSA)
+ set(NEED_PTHREAD ON)
+ find_package(ALSA)
+ if (NOT ALSA_FOUND)
+ message(FATAL_ERROR "ALSA API requested but no ALSA dev libraries found")
+ endif()
+ list(APPEND INCDIRS ${ALSA_INCLUDE_DIR})
+ list(APPEND LINKLIBS ${ALSA_LIBRARY})
+ list(APPEND PKGCONFIG_REQUIRES "alsa")
+ list(APPEND API_DEFS "-D__LINUX_ALSA__")
+ list(APPEND API_LIST "alsa")
+endif()
+
+# OSS
+if (RTAUDIO_OSS)
+ set(NEED_PTHREAD ON)
+ find_library(OSSAUDIO_LIB ossaudio)
+ if (OSSAUDIO_LIB)
+ list(APPEND LINKLIBS ossaudio)
+ # Note: not an error on some systems
+ endif()
+ list(APPEND API_DEFS "-D__LINUX_OSS__")
+ list(APPEND API_LIST "oss")
+endif()
+
+# Pulse
+if (RTAUDIO_API_PULSE)
+ set(NEED_PTHREAD ON)
+ find_library(PULSE_LIB pulse)
+ find_library(PULSESIMPLE_LIB pulse-simple)
+ list(APPEND LINKLIBS ${PULSE_LIB} ${PULSESIMPLE_LIB})
+ list(APPEND PKGCONFIG_REQUIRES "libpulse-simple")
+ list(APPEND API_DEFS "-D__LINUX_PULSE__")
+ list(APPEND API_LIST "pulse")
+endif()
+
+# CoreAudio
+if (RTAUDIO_API_CORE)
+ find_library(COREAUDIO_LIB CoreAudio)
+ find_library(COREFOUNDATION_LIB CoreFoundation)
+ list(APPEND LINKLIBS ${COREAUDIO_LIB} ${COREFOUNDATION_LIB})
+ list(APPEND API_DEFS "-D__MACOSX_CORE__")
+ list(APPEND API_LIST "core")
+endif()
+
+# ASIO
+if (RTAUDIO_API_ASIO)
+ set(NEED_WIN32LIBS ON)
+ include_directories(include)
+ list(APPEND rtaudio_SOURCES
+ include/asio.cpp
+ include/asiodrivers.cpp
+ include/asiolist.cpp
+ include/iasiothiscallresolver.cpp)
+ list(APPEND API_DEFS "-D__WINDOWS_ASIO__")
+ list(APPEND API_LIST "asio")
+endif()