Fix handling of CXXFLAGS in configure.ac.
[rtaudio-cdist.git] / CMakeLists.txt
index 509bf39c95f2daefeb97b1a9e0c6a39d8e87f45e..9de6a85dada99036a3020fd3ac742359a2af4370 100644 (file)
@@ -7,12 +7,26 @@ include(CheckFunctionExists)
 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)
 option(AUDIO_UNIX_JACK "Build Unix JACK audio server API" OFF)
 option(AUDIO_OSX_CORE "Build Mac OSX CoreAudio API" OFF)
 
+if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+    add_definitions(-D__RTAUDIO_DEBUG__)
+endif ()
+
+check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
+
+if (HAVE_GETTIMEOFDAY)
+    add_definitions(-DHAVE_GETTIMEOFDAY)
+endif ()
+
+if (CMAKE_COMPILER_IS_GNUCXX)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+endif (CMAKE_COMPILER_IS_GNUCXX)
 
 set(rtaudio_SOURCES RtAudio.cpp)
 
@@ -40,7 +54,7 @@ elseif (UNIX AND NOT APPLE)
         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")
@@ -66,25 +80,29 @@ 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)
+    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
@@ -96,9 +114,13 @@ if (WIN32)
     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)