Browse Source

Add full API selection mechanism.

Mostly copied from configure.ac.
tags/4.1.0
Berkus 11 years ago
parent
commit
f31af1aa0f
1 changed files with 83 additions and 0 deletions
  1. +83
    -0
      CMakeLists.txt

+ 83
- 0
CMakeLists.txt View File

@@ -14,8 +14,91 @@ option(AUDIO_UNIX_JACK "Build Unix JACK audio server API" OFF)
option(AUDIO_OSX_CORE "Build Mac OSX CoreAudio API" OFF)


set(rtaudio_SOURCES RtAudio.cpp)

set(LINKLIBS)
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)
list(APPEND LINKLIBS ${PULSE_LIB} ${PULSESIMPLE_LIB})
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()
add_defines(${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 ()

if (APPLE)
if (NOT AUDIO_OSX_CORE AND NOT AUDIO_UNIX_JACK)
set(AUDIO_OSX_CORE ON)
endif()

if (AUDIO_OSX_CORE)
find_library(COREAUDIO_LIB CoreAudio)
find_library(COREFOUNDATION_LIB CoreFoundation)
list(APPEND LINKLIBS ${COREAUDIO_LIB} ${COREFOUNDATION_LIB})
add_definitions(-D__MACOSX_CORE__)
message(STATUS "Using OSX CoreAudio")
endif (AUDIO_OSX_CORE)
endif (APPLE)

# JACK supported on many Unices
if (UNIX)
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)
endif()

include_directories(include)
list(APPEND LINKLIBS dsound winmm ole32)

if (AUDIO_WINDOWS_DS)
add_definitions(-D__WINDOWS_DS__)
message(STATUS "Using Windows DirectSound")
endif (AUDIO_WINDOWS_DS)
if (AUDIO_WINDOWS_ASIO)
list(APPEND rtaudio_SOURCES
include/asio.cpp
include/asiodrivers.cpp
include/asiolist.cpp
include/iasiothiscallresolver.cpp)
add_definitions(-D__WINDOWS_ASIO__)
message(STATUS "Using Windows ASIO")
endif (AUDIO_WINDOWS_ASIO)
endif (WIN32)

add_library(rtaudio SHARED ${rtaudio_SOURCES})
add_library(rtaudio_static STATIC ${rtaudio_SOURCES})

target_link_libraries(rtaudio ${LINKLIBS})



Loading…
Cancel
Save