build: add cmake options for optional dependencies

closes #1
This commit is contained in:
Andrew Kelley 2015-08-31 15:51:49 -07:00
parent 0f508fcf19
commit 0b7c9965f9

View file

@ -24,6 +24,12 @@ set(LIBSOUNDIO_VERSION_PATCH 0)
set(LIBSOUNDIO_VERSION "${LIBSOUNDIO_VERSION_MAJOR}.${LIBSOUNDIO_VERSION_MINOR}.${LIBSOUNDIO_VERSION_PATCH}") set(LIBSOUNDIO_VERSION "${LIBSOUNDIO_VERSION_MAJOR}.${LIBSOUNDIO_VERSION_MINOR}.${LIBSOUNDIO_VERSION_PATCH}")
message("Configuring libsoundio version ${LIBSOUNDIO_VERSION}") message("Configuring libsoundio version ${LIBSOUNDIO_VERSION}")
option(ENABLE_JACK "Enable JACK backend" ON)
option(ENABLE_PULSEAUDIO "Enable PulseAudio backend" ON)
option(ENABLE_ALSA "Enable ALSA backend" ON)
option(ENABLE_COREAUDIO "Enable CoreAudio backend" ON)
option(ENABLE_WASAPI "Enable WASAPI backend" ON)
find_package(Threads) find_package(Threads)
if(Threads_FOUND) if(Threads_FOUND)
set(STATUS_THREADS "OK") set(STATUS_THREADS "OK")
@ -31,66 +37,97 @@ else(Threads_FOUND)
set(STATUS_THREADS "not found") set(STATUS_THREADS "not found")
endif(Threads_FOUND) endif(Threads_FOUND)
find_package(JACK) if(ENABLE_JACK)
if(JACK_FOUND) find_package(JACK)
set(STATUS_JACK "OK") if(JACK_FOUND)
set(SOUNDIO_HAVE_JACK true) set(STATUS_JACK "OK")
include_directories(${JACK_INCLUDE_DIR}) set(SOUNDIO_HAVE_JACK true)
include_directories(${JACK_INCLUDE_DIR})
else()
set(STATUS_JACK "not found")
set(SOUNDIO_HAVE_JACK false)
set(JACK_LIBRARY "")
endif()
else() else()
set(STATUS_JACK "not found") set(STATUS_JACK "disabled")
set(SOUNDIO_HAVE_JACK false) set(SOUNDIO_HAVE_JACK false)
set(JACK_LIBRARY "") set(JACK_LIBRARY "")
endif() endif()
find_package(PulseAudio) if(ENABLE_PULSEAUDIO)
if(PULSEAUDIO_FOUND) find_package(PulseAudio)
set(STATUS_PULSEAUDIO "OK") if(PULSEAUDIO_FOUND)
set(SOUNDIO_HAVE_PULSEAUDIO true) set(STATUS_PULSEAUDIO "OK")
include_directories(${PULSEAUDIO_INCLUDE_DIR}) set(SOUNDIO_HAVE_PULSEAUDIO true)
include_directories(${PULSEAUDIO_INCLUDE_DIR})
else()
set(STATUS_PULSEAUDIO "not found")
set(SOUNDIO_HAVE_PULSEAUDIO false)
set(PULSEAUDIO_LIBRARY "")
endif()
else() else()
set(STATUS_PULSEAUDIO "not found") set(STATUS_PULSEAUDIO "disabled")
set(SOUNDIO_HAVE_PULSEAUDIO false) set(SOUNDIO_HAVE_PULSEAUDIO false)
set(PULSEAUDIO_LIBRARY "") set(PULSEAUDIO_LIBRARY "")
endif() endif()
find_package(ALSA) if(ENABLE_ALSA)
if(ALSA_FOUND) find_package(ALSA)
set(STATUS_ALSA "OK") if(ALSA_FOUND)
set(SOUNDIO_HAVE_ALSA true) set(STATUS_ALSA "OK")
include_directories(${ALSA_INCLUDE_DIRS}) set(SOUNDIO_HAVE_ALSA true)
include_directories(${ALSA_INCLUDE_DIRS})
else()
set(STATUS_ALSA "not found")
set(SOUNDIO_HAVE_ALSA false)
set(ALSA_LIBRARIES "")
endif()
else() else()
set(STATUS_ALSA "not found") set(STATUS_ALSA "disabled")
set(SOUNDIO_HAVE_ALSA false) set(SOUNDIO_HAVE_ALSA false)
set(ALSA_LIBRARIES "") set(ALSA_LIBRARIES "")
endif() endif()
find_package(CoreAudio) if(ENABLE_COREAUDIO)
if(COREAUDIO_FOUND) find_package(CoreAudio)
set(STATUS_COREAUDIO "OK") if(COREAUDIO_FOUND)
set(SOUNDIO_HAVE_COREAUDIO true) set(STATUS_COREAUDIO "OK")
include_directories(${COREAUDIO_INCLUDE_DIR}) set(SOUNDIO_HAVE_COREAUDIO true)
include_directories(${COREAUDIO_INCLUDE_DIR})
find_path(COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h) find_path(COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h)
find_library(COREFOUNDATION_LIBRARY NAMES CoreFoundation) find_library(COREFOUNDATION_LIBRARY NAMES CoreFoundation)
include_directories(${COREFOUNDATION_INCLUDE_DIR}) include_directories(${COREFOUNDATION_INCLUDE_DIR})
find_path(AUDIOUNIT_INCLUDE_DIR NAMES AudioUnit.h) find_path(AUDIOUNIT_INCLUDE_DIR NAMES AudioUnit.h)
find_library(AUDIOUNIT_LIBRARY NAMES AudioUnit) find_library(AUDIOUNIT_LIBRARY NAMES AudioUnit)
include_directories(${AUDIOUNIT_INCLUDE_DIR}) include_directories(${AUDIOUNIT_INCLUDE_DIR})
else()
set(STATUS_COREAUDIO "not found")
set(SOUNDIO_HAVE_COREAUDIO false)
set(COREAUDIO_LIBRARY "")
set(COREFOUNDATION_LIBRARY "")
set(AUDIOUNIT_LIBRARY "")
endif()
else() else()
set(STATUS_COREAUDIO "not found") set(STATUS_COREAUDIO "disabled")
set(SOUNDIO_HAVE_COREAUDIO false) set(SOUNDIO_HAVE_COREAUDIO false)
set(COREAUDIO_LIBRARY "") set(COREAUDIO_LIBRARY "")
set(COREFOUNDATION_LIBRARY "") set(COREFOUNDATION_LIBRARY "")
set(AUDIOUNIT_LIBRARY "") set(AUDIOUNIT_LIBRARY "")
endif() endif()
find_package(WASAPI) if(ENABLE_WASAPI)
if(WASAPI_FOUND) find_package(WASAPI)
set(STATUS_WASAPI "OK") if(WASAPI_FOUND)
set(SOUNDIO_HAVE_WASAPI true) set(STATUS_WASAPI "OK")
set(SOUNDIO_HAVE_WASAPI true)
else()
set(STATUS_WASAPI "not found")
set(SOUNDIO_HAVE_WASAPI false)
endif()
else() else()
set(STATUS_WASAPI "not found") set(STATUS_WASAPI "disabled")
set(SOUNDIO_HAVE_WASAPI false) set(SOUNDIO_HAVE_WASAPI false)
endif() endif()
@ -339,9 +376,9 @@ message(
"System Dependencies\n" "System Dependencies\n"
"-------------------\n" "-------------------\n"
"* threads : ${STATUS_THREADS}\n" "* threads : ${STATUS_THREADS}\n"
"* JACK (optional) : ${STATUS_JACK}\n" "* JACK (optional) : ${STATUS_JACK}\n"
"* PulseAudio (optional) : ${STATUS_PULSEAUDIO}\n" "* PulseAudio (optional) : ${STATUS_PULSEAUDIO}\n"
"* ALSA (optional) : ${STATUS_ALSA}\n" "* ALSA (optional) : ${STATUS_ALSA}\n"
"* CoreAudio (optional) : ${STATUS_COREAUDIO}\n" "* CoreAudio (optional) : ${STATUS_COREAUDIO}\n"
"* WASAPI (optional) : ${STATUS_WASAPI}\n" "* WASAPI (optional) : ${STATUS_WASAPI}\n"
) )