summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorGraham Bloice <graham.bloice@trihedral.com>2015-04-26 14:22:05 +0100
committerGraham Bloice <graham.bloice@trihedral.com>2015-06-09 13:12:19 +0000
commit97dfbf565cdb526fe5072f2c8e1109918213d327 (patch)
tree7d774534ee99d4772cca6a3d12c9dd2f5f376a5c /cmake
parent9cb09a242f752c775a6d11d12dcb84ef6d9264d2 (diff)
downloadwireshark-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.cmake54
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 )