wireshark/cmake/modules/FindILBC.cmake

78 lines
2.2 KiB
CMake

# Find the system's ilbc includes and library
#
# ILBC_INCLUDE_DIRS - where to find ilbc.h
# ILBC_LIBRARIES - List of libraries when using ilbc
# ILBC_FOUND - True if ilbc found
# ILBC_DLL_DIR - (Windows) Path to the ilbc DLL
# ILBC_DLL - (Windows) Name of the ilbc DLL
include( FindWSWinLibs )
FindWSWinLibs( "libilbc-.*" "ILBC_HINTS" )
if (NOT WIN32)
find_package(PkgConfig)
pkg_search_module(PC_ILBC libilbc)
endif()
find_path(ILBC_INCLUDE_DIR
NAMES ilbc.h
HINTS
"${PC_ILBC_INCLUDE_DIRS}"
"${ILBC_HINTS}/include"
PATHS /usr/local/include /usr/include
)
find_library(ILBC_LIBRARY
NAMES
ilbc
libilbc
HINTS
"${PC_ILBC_LIBRARY_DIRS}"
"${ILBC_HINTS}/lib"
PATHS /usr/local/lib /usr/lib
)
# Check if ilbc library is WebRTC from https://github.com/TimothyGu/libilbc
if(ILBC_INCLUDE_DIR AND ILBC_LIBRARY)
include(CheckSymbolExists)
cmake_push_check_state()
set(CMAKE_REQUIRED_INCLUDES ${ILBC_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ILBC_LIBRARY})
check_symbol_exists("WebRtcIlbcfix_DecoderCreate" "ilbc.h" HAVE_ILBC_LIB_WEBRTC)
cmake_pop_check_state()
if(NOT HAVE_ILBC_LIB_WEBRTC)
message(STATUS "Ignoring incompatible iLBC library.")
# Unset the variables so the search will rerun next time
set(ILBC_INCLUDE_DIR "ILBC_INCLUDE_DIR-NOTFOUND" CACHE PATH "" FORCE)
set(ILBC_LIBRARY "ILBC_LIBRARY-NOTFOUND" CACHE FILEPATH "" FORCE)
unset(HAVE_ILBC_LIB_WEBRTC CACHE)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ILBC DEFAULT_MSG ILBC_LIBRARY ILBC_INCLUDE_DIR)
if( ILBC_FOUND )
set( ILBC_INCLUDE_DIRS ${ILBC_INCLUDE_DIR} )
set( ILBC_LIBRARIES ${ILBC_LIBRARY} )
if (WIN32)
set ( ILBC_DLL_DIR "${ILBC_HINTS}/bin"
CACHE PATH "Path to ilbc DLL"
)
file( GLOB _ilbc_dll RELATIVE "${ILBC_DLL_DIR}"
"${ILBC_DLL_DIR}/libilbc.dll"
)
set ( ILBC_DLL ${_ilbc_dll}
# We're storing filenames only. Should we use STRING instead?
CACHE FILEPATH "ilbc DLL file name"
)
mark_as_advanced( ILBC_DLL_DIR ILBC_DLL )
endif()
else()
set( ILBC_INCLUDE_DIRS )
set( ILBC_LIBRARIES )
endif()
mark_as_advanced( ILBC_LIBRARIES ILBC_INCLUDE_DIRS )