aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/FindPORTAUDIO.cmake18
1 files changed, 17 insertions, 1 deletions
diff --git a/cmake/modules/FindPORTAUDIO.cmake b/cmake/modules/FindPORTAUDIO.cmake
index 6478313e46..fd456358c0 100644
--- a/cmake/modules/FindPORTAUDIO.cmake
+++ b/cmake/modules/FindPORTAUDIO.cmake
@@ -20,7 +20,7 @@ FIND_PATH(PORTAUDIO_INCLUDE_DIR portaudio.h HINTS "${PORTAUDIO_HINTS}/include" )
SET(PORTAUDIO_NAMES portaudio)
FIND_LIBRARY(PORTAUDIO_LIBRARY NAMES ${PORTAUDIO_NAMES} )
-# handle the QUIETLY and REQUIRED arguments and set PORTAUDIO_FOUND to TRUE if
+# handle the QUIETLY and REQUIRED arguments and set PORTAUDIO_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PORTAUDIO DEFAULT_MSG PORTAUDIO_LIBRARY PORTAUDIO_INCLUDE_DIR)
@@ -28,6 +28,22 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PORTAUDIO DEFAULT_MSG PORTAUDIO_LIBRARY PORTAU
IF(PORTAUDIO_FOUND)
SET( PORTAUDIO_LIBRARIES ${PORTAUDIO_LIBRARY} )
SET( PORTAUDIO_INCLUDE_DIRS ${PORTAUDIO_INCLUDE_DIR} )
+
+ # Check for newer PortAudio V19 API
+ # http://www.portaudio.com/docs/proposals/018-VersionInformationInterface.html
+ INCLUDE(CheckFunctionExists)
+ SET(CMAKE_REQUIRED_INCLUDES ${PORTAUDIO_INCLUDE_DIRS})
+ SET(CMAKE_REQUIRED_LIBRARIES ${PORTAUDIO_LIBRARIES})
+ CHECK_FUNCTION_EXISTS(Pa_GetVersion HAVE_PA_GETVERSION)
+ SET(CMAKE_REQUIRED_INCLUDES "")
+ SET(CMAKE_REQUIRED_LIBRARIES "")
+ IF(HAVE_PA_GETVERSION)
+ # Symbol found, must be the newer V19 API
+ SET( PORTAUDIO_API_1 )
+ ELSE(HAVE_PA_GETVERSION)
+ # Symbol not found, must be the older V18 API
+ SET( PORTAUDIO_API_1 1 )
+ ENDIF(HAVE_PA_GETVERSION)
ELSE(PORTAUDIO_FOUND)
SET( PORTAUDIO_LIBRARIES )
SET( PORTAUDIO_INCLUDE_DIRS )