diff options
Diffstat (limited to 'cmake/modules/FindSpeexDSP.cmake')
-rw-r--r-- | cmake/modules/FindSpeexDSP.cmake | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/cmake/modules/FindSpeexDSP.cmake b/cmake/modules/FindSpeexDSP.cmake index 6c111111e5..cd6ada0c42 100644 --- a/cmake/modules/FindSpeexDSP.cmake +++ b/cmake/modules/FindSpeexDSP.cmake @@ -1,18 +1,26 @@ +# Find the system's SpeexDSP includes and library # -# - Find speexdsp libraries -# -# SPEEXDSP_INCLUDE_DIRS - where to find speexdsp headers. -# SPEEXDSP_LIBRARIES - List of libraries when using speexdsp. -# SPEEXDSP_FOUND - True if speexdsp is found. +# SPEEXDSP_INCLUDE_DIRS - where to find SpeexDSP headers +# SPEEXDSP_LIBRARIES - List of libraries when using SpeexDSP +# SPEEXDSP_FOUND - True if SpeexDSP found +# SPEEXDSP_DLL_DIR - (Windows) Path to the SpeexDSP DLL +# SPEEXDSP_DLL - (Windows) Name of the SpeexDSP DLL + +include(FindWSWinLibs) +FindWSWinLibs("speexdsp-.*" "SPEEXDSP_HINTS") + +if(NOT WIN32) + find_package(PkgConfig) + pkg_search_module(PC_SPEEXDSP speexdsp) +endif() -find_package(PkgConfig QUIET) -pkg_search_module(PC_SPEEXDSP QUIET speexdsp) find_path(SPEEXDSP_INCLUDE_DIR NAMES speex/speex_resampler.h HINTS ${PC_SPEEXDSP_INCLUDE_DIRS} + ${SPEEXDSP_HINTS}/include ) find_library(SPEEXDSP_LIBRARY @@ -20,16 +28,28 @@ find_library(SPEEXDSP_LIBRARY speexdsp HINTS ${PC_SPEEXDSP_LIBRARY_DIRS} + ${SPEEXDSP_HINTS}/lib ) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SpeexDSP - REQUIRED_VARS SPEEXDSP_LIBRARY SPEEXDSP_INCLUDE_DIR - VERSION_VAR PC_SPEEXDSP_VERSION) +find_package_handle_standard_args(SpeexDSP DEFAULT_MSG SPEEXDSP_LIBRARY SPEEXDSP_INCLUDE_DIR) if(SPEEXDSP_FOUND) set(SPEEXDSP_LIBRARIES ${SPEEXDSP_LIBRARY}) set(SPEEXDSP_INCLUDE_DIRS ${SPEEXDSP_INCLUDE_DIR}) + if(WIN32) + set(SPEEXDSP_DLL_DIR "${SPEEXDSP_HINTS}/bin" + CACHE PATH "Path to SpeexDSP DLL" + ) + file(GLOB _speexdsp_dll RELATIVE "${SPEEXDSP_DLL_DIR}" + "${SPEEXDSP_DLL_DIR}/libspeexdsp.dll" + ) + set(SPEEXDSP_DLL ${_speexdsp_dll} + # We're storing filenames only. Should we use STRING instead? + CACHE FILEPATH "SpeexDSP DLL file name" + ) + mark_as_advanced(SPEEXDSP_DLL_DIR SPEEXDSP_DLL) + endif() else() set(SPEEXDSP_LIBRARIES) set(SPEEXDSP_INCLUDE_DIRS) |