forked from osmocom/wireshark
78 lines
2.2 KiB
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 )
|