diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 209faaf5..f9e3732c 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -4,18 +4,6 @@ set(BENCHMARK_SIMD_SOURCES) sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src") find_package(benchmark CONFIG REQUIRED) -# Check libsamplerate -find_library(SAMPLERATE_LIBRARY "samplerate") -find_path(SAMPLERATE_INCLUDE_DIR "samplerate.h") -message(STATUS "Checking samplerate library: ${SAMPLERATE_LIBRARY}") -message(STATUS "Checking samplerate includes: ${SAMPLERATE_INCLUDE_DIR}") -if(SAMPLERATE_LIBRARY AND SAMPLERATE_INCLUDE_DIR) - add_library(sfizz_samplerate INTERFACE) - add_library(sfizz::samplerate ALIAS sfizz_samplerate) - target_include_directories(sfizz_samplerate INTERFACE "${SAMPLERATE_INCLUDE_DIR}") - target_link_libraries(sfizz_samplerate INTERFACE "${SAMPLERATE_LIBRARY}") -endif() - add_library(bm_simd STATIC ${BENCHMARK_SIMD_SOURCES}) target_link_libraries(bm_simd PRIVATE absl::span sfizz::cpuid) add_library(bm_ftz STATIC ../src/sfizz/ScopedFTZ.cpp) diff --git a/cmake/SfizzDeps.cmake b/cmake/SfizzDeps.cmake index a5dcee06..24ce0916 100644 --- a/cmake/SfizzDeps.cmake +++ b/cmake/SfizzDeps.cmake @@ -163,3 +163,28 @@ add_library(sfizz_fmidi STATIC add_library(sfizz::fmidi ALIAS sfizz_fmidi) target_include_directories(sfizz_fmidi PUBLIC "external/fmidi/sources") target_compile_definitions(sfizz_fmidi PUBLIC "FMIDI_STATIC=1" "FMIDI_DISABLE_DESCRIBE_API=1") + +# The samplerate library +find_package(PkgConfig) +if(PKGCONFIG_FOUND) + pkg_check_modules(SAMPLERATE "samplerate") + if(SAMPLERATE_FOUND) + add_library(sfizz_samplerate INTERFACE) + add_library(sfizz::samplerate ALIAS sfizz_samplerate) + target_include_directories(sfizz_samplerate INTERFACE ${SAMPLERATE_INCLUDE_DIRS}) + target_link_libraries(sfizz_samplerate INTERFACE ${SAMPLERATE_LIBRARIES}) + link_directories(${SAMPLERATE_LIBRARY_DIRS}) + endif() +endif() +if(NOT TARGET sfizz::samplerate) + find_library(SAMPLERATE_LIBRARY "samplerate") + find_path(SAMPLERATE_INCLUDE_DIR "samplerate.h") + message(STATUS "Checking samplerate library: ${SAMPLERATE_LIBRARY}") + message(STATUS "Checking samplerate includes: ${SAMPLERATE_INCLUDE_DIR}") + if(SAMPLERATE_LIBRARY AND SAMPLERATE_INCLUDE_DIR) + add_library(sfizz_samplerate INTERFACE) + add_library(sfizz::samplerate ALIAS sfizz_samplerate) + target_include_directories(sfizz_samplerate INTERFACE "${SAMPLERATE_INCLUDE_DIR}") + target_link_libraries(sfizz_samplerate INTERFACE "${SAMPLERATE_LIBRARY}") + endif() +endif()