From aa6e1607e238eea72643328c3e50984307ef8135 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 22 Jan 2015 14:06:05 -0800 Subject: [PATCH] add libsoxr for audio resampling --- cmake/modules/FindLibSoxr.cmake | 30 +++++++++++++++++++++++++++ libraries/audio-client/CMakeLists.txt | 5 +++++ 2 files changed, 35 insertions(+) create mode 100644 cmake/modules/FindLibSoxr.cmake diff --git a/cmake/modules/FindLibSoxr.cmake b/cmake/modules/FindLibSoxr.cmake new file mode 100644 index 0000000000..b43e05c4b7 --- /dev/null +++ b/cmake/modules/FindLibSoxr.cmake @@ -0,0 +1,30 @@ +# +# FindLibsoxr.cmake +# +# Try to find the libsoxr resampling library +# +# You can provide a LIBSOXR_ROOT_DIR which contains lib and include directories +# +# Once done this will define +# +# LIBSOXR_FOUND - system found libsoxr +# LIBSOXR_INCLUDE_DIRS - the libsoxr include directory +# LIBSOXR_LIBRARIES - link to this to use libsoxr +# +# Created on 1/22/2015 by Stephen Birarda +# Copyright 2015 High Fidelity, Inc. +# +# Distributed under the Apache License, Version 2.0. +# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +# + +include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") +hifi_library_search_hints("libsoxr") + +find_path(LIBSOXR_INCLUDE_DIRS soxr.h PATH_SUFFIXES include HINTS ${LIBSOXR_SEARCH_DIRS}) +find_library(LIBSOXR_LIBRARIES NAMES soxr PATH_SUFFIXES lib HINTS ${LIBSOXR_SEARCH_DIRS}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(libsoxr DEFAULT_MSG LIBSOXR_INCLUDE_DIRS LIBSOXR_LIBRARIES) + +mark_as_advanced(LIBSOXR_INCLUDE_DIRS LIBSOXR_LIBRARIES LIBSOXR_SEARCH_DIRS) \ No newline at end of file diff --git a/libraries/audio-client/CMakeLists.txt b/libraries/audio-client/CMakeLists.txt index 4e6b1d48f3..3a2552bfd4 100644 --- a/libraries/audio-client/CMakeLists.txt +++ b/libraries/audio-client/CMakeLists.txt @@ -20,5 +20,10 @@ target_link_libraries(${TARGET_NAME} gverb) # append gverb includes to our list of includes to bubble list(APPEND ${TARGET_NAME}_DEPENDENCY_INCLUDES "${GVERB_INCLUDE_DIRS}") +# we use libsoxr for resampling +find_package(LibSoxr REQUIRED) +target_link_libraries(${TARGET_NAME} ${LIBSOXR_LIBRARIES}) +include_directories(SYSTEM ${LIBSOXR_INCLUDE_DIRS}) + # call macro to include our dependency includes and bubble them up via a property on our target include_dependency_includes() \ No newline at end of file