diff options
author | Graham Bloice <graham.bloice@trihedral.com> | 2015-04-26 14:22:05 +0100 |
---|---|---|
committer | Graham Bloice <graham.bloice@trihedral.com> | 2015-06-09 13:12:19 +0000 |
commit | 97dfbf565cdb526fe5072f2c8e1109918213d327 (patch) | |
tree | 7d774534ee99d4772cca6a3d12c9dd2f5f376a5c /cmake | |
parent | 9cb09a242f752c775a6d11d12dcb84ef6d9264d2 (diff) | |
download | wireshark-97dfbf565cdb526fe5072f2c8e1109918213d327.tar.gz |
Add PortAudio to Windows CMake build
Change-Id: I774ff0bf858280f2a5aa551ae1a5e23eedf8dc20
Reviewed-on: https://code.wireshark.org/review/8848
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/FindPORTAUDIO.cmake | 54 |
1 files changed, 39 insertions, 15 deletions
diff --git a/cmake/modules/FindPORTAUDIO.cmake b/cmake/modules/FindPORTAUDIO.cmake index d8a0d351d2..a8676b8202 100644 --- a/cmake/modules/FindPORTAUDIO.cmake +++ b/cmake/modules/FindPORTAUDIO.cmake @@ -5,6 +5,10 @@ # PORTAUDIO_INCLUDE_DIRS - where to find portaudio.h, etc. # PORTAUDIO_LIBRARIES - List of libraries when using portaudio. # PORTAUDIO_FOUND - True if portaudio found. +# +# For Windows, Portaudio is just a set of headers, there is no library +# we build an archive ourselves +# So set PORTAUDIO_SRC_DIR and PORT_AUDIO_INCLUDE_DIRS IF (PORTAUDIO_INCLUDE_DIRS) @@ -31,30 +35,50 @@ FIND_LIBRARY(PORTAUDIO_LIBRARY NAMES ${PORTAUDIO_NAMES} # 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) +IF(WIN32) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(PORTAUDIO DEFAULT_MSG PORTAUDIO_INCLUDE_DIR) +ELSE(WIN32) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(PORTAUDIO DEFAULT_MSG PORTAUDIO_LIBRARY PORTAUDIO_INCLUDE_DIR) +ENDIF(WIN32) IF(PORTAUDIO_FOUND) - SET( PORTAUDIO_LIBRARIES ${PORTAUDIO_LIBRARY} ) + IF(WIN32) + SET( PORTAUDIO_LIBRARIES "" ) + SET( PORTAUDIO_SRC_DIR "${PORTAUDIO_HINTS}/src" ) + SET( PORTAUDIO_INCLUDE_DIR + ${PORTAUDIO_INCLUDE_DIR} + ${PORTAUDIO_SRC_DIR}/common + ${PORTAUDIO_SRC_DIR}/os/win + ) + ELSE(WIN32) + SET( PORTAUDIO_LIBRARIES ${PORTAUDIO_LIBRARY} ) + ENDIF(WIN32) 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 + IF(WIN32) + # We only have the newer version on Windows 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(WIN32) + 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) + ENDIF(WIN32) ELSE(PORTAUDIO_FOUND) SET( PORTAUDIO_LIBRARIES ) SET( PORTAUDIO_INCLUDE_DIRS ) + SET( PORTAUDIO_SRC_DIR ) ENDIF(PORTAUDIO_FOUND) -MARK_AS_ADVANCED( PORTAUDIO_LIBRARIES PORTAUDIO_INCLUDE_DIRS ) +MARK_AS_ADVANCED( PORTAUDIO_LIBRARIES PORTAUDIO_INCLUDE_DIRS PORTAUDIO_SRC_DIR ) |