diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /cmake/modules/FindILBC.cmake | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cmake/modules/FindILBC.cmake')
-rw-r--r-- | cmake/modules/FindILBC.cmake | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/cmake/modules/FindILBC.cmake b/cmake/modules/FindILBC.cmake new file mode 100644 index 00000000..6dc81a49 --- /dev/null +++ b/cmake/modules/FindILBC.cmake @@ -0,0 +1,77 @@ +# 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 USE_REPOSITORY) + 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-2 + 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 ) |