option(BUILD_PYTHON "Build PyRtAudio python bindings" OFF)
option(AUDIO_WINDOWS_DS "Build Windows DirectSound API" OFF)
option(AUDIO_WINDOWS_ASIO "Build Windows ASIO API" OFF)
+option(AUDIO_WINDOWS_WASAPI "Build Windows WASAPI API" OFF)
option(AUDIO_LINUX_OSS "Build Linux OSS API" OFF)
option(AUDIO_LINUX_ALSA "Build Linux ALSA API" OFF)
option(AUDIO_LINUX_PULSE "Build Linux PulseAudio API" OFF)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif (CMAKE_COMPILER_IS_GNUCXX)
-set(rtaudio_SOURCES RtAudio.cpp)
+set(rtaudio_SOURCES RtAudio.cpp rtaudio_c.cpp)
set(LINKLIBS)
if (CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*")
if (AUDIO_LINUX_PULSE)
find_library(PULSE_LIB pulse)
find_library(PULSESIMPLE_LIB pulse-simple)
- list(APPEND LINKLIBS ${PULSE_LIB} ${PULSESIMPLE_LIB})
+ 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 (NOT ALSA_FOUND)
message(FATAL_ERROR "ALSA API requested but no ALSA dev libraries found")
endif()
- add_defines(${ALSA_INCLUDE_DIR})
+ include_directories(${ALSA_INCLUDE_DIR})
list(APPEND LINKLIBS ${ALSA_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
add_definitions(-D__LINUX_ALSA__)
message(STATUS "Using Linux ALSA")
if (AUDIO_UNIX_JACK)
find_library(JACK_LIB jack)
list(APPEND LINKLIBS ${JACK_LIB})
-# jack_client_open
-# AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(Jack support also requires the asound library!))], )
add_definitions(-D__UNIX_JACK__)
message(STATUS "Using JACK")
endif (AUDIO_UNIX_JACK)
endif (UNIX)
if (WIN32)
- if (NOT AUDIO_WINDOWS_DS AND NOT AUDIO_WINDOWS_ASIO)
- set(AUDIO_WINDOWS_DS ON)
+ if (NOT AUDIO_WINDOWS_DS AND NOT AUDIO_WINDOWS_ASIO AND NOT AUDIO_WINDOWS_WASAPI)
+ set(AUDIO_WINDOWS_WASAPI ON)
endif()
include_directories(include)
- list(APPEND LINKLIBS dsound winmm ole32)
+ list(APPEND LINKLIBS winmm ole32)
if (AUDIO_WINDOWS_DS)
add_definitions(-D__WINDOWS_DS__)
message(STATUS "Using Windows DirectSound")
+ list(APPEND LINKLIBS dsound)
endif (AUDIO_WINDOWS_DS)
+ if (AUDIO_WINDOWS_WASAPI)
+ add_definitions(-D__WINDOWS_WASAPI__)
+ message(STATUS "Using Windows WASAPI")
+ list(APPEND LINKLIBS uuid ksuser)
+ endif (AUDIO_WINDOWS_WASAPI)
if (AUDIO_WINDOWS_ASIO)
list(APPEND rtaudio_SOURCES
include/asio.cpp
endif (AUDIO_WINDOWS_ASIO)
endif (WIN32)
+cmake_policy(SET CMP0042 OLD)
add_library(rtaudio SHARED ${rtaudio_SOURCES})
add_library(rtaudio_static STATIC ${rtaudio_SOURCES})
target_link_libraries(rtaudio ${LINKLIBS})
+if (BUILD_TESTING)
+ add_subdirectory(tests)
+endif (BUILD_TESTING)
+
+configure_file("rtaudio.pc.in" "rtaudio.pc" @ONLY)
+
+install(TARGETS rtaudio
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+install(
+ FILES RtAudio.h
+ DESTINATION include)
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/rtaudio.pc
+ DESTINATION lib/pkgconfig)