From 55f5625c3200eea8223bf42f9efe829782cda8f2 Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Sun, 19 Jan 2020 09:51:31 +0100 Subject: [PATCH] Sanitized the benchmark build --- benchmarks/CMakeLists.txt | 86 +++++++++++++-------------------------- cmake/SfizzConfig.cmake | 19 --------- 2 files changed, 29 insertions(+), 76 deletions(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 160c248f..c6e3917a 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -4,152 +4,124 @@ project(sfizz) include (SfizzSIMDSourceFilesCheck) set(BENCHMARK_SIMD_SOURCES ${SFIZZ_SIMD_SOURCES}) list(TRANSFORM BENCHMARK_SIMD_SOURCES PREPEND "../src/") +find_package(benchmark CONFIG REQUIRED) add_executable(bm_opf_high_vs_low BM_OPF_high_vs_low.cpp) -target_link_libraries(bm_opf_high_vs_low PRIVATE absl::span) -sfizz_link_benchmark(bm_opf_high_vs_low) +target_link_libraries(bm_opf_high_vs_low PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_opf_high_vs_low PRIVATE ../src/sfizz ../src/external) add_executable(bm_write BM_writeInterleaved.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_write PRIVATE absl::span) -sfizz_link_benchmark(bm_write) +target_link_libraries(bm_write PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_write PRIVATE ../src/sfizz ../src/external) add_executable(bm_read BM_readInterleaved.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_read PRIVATE absl::span) -sfizz_link_benchmark(bm_read) +target_link_libraries(bm_read PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_read PRIVATE ../src/sfizz ../src/external) add_executable(bm_fill BM_fill.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_fill PRIVATE absl::span) -sfizz_link_benchmark(bm_fill) +target_link_libraries(bm_fill PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_fill PRIVATE ../src/sfizz ../src/external) add_executable(bm_mathfuns BM_mathfuns.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_mathfuns PRIVATE absl::span) -sfizz_link_benchmark(bm_mathfuns) +target_link_libraries(bm_mathfuns PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_mathfuns PRIVATE ../src/sfizz ../src/external) add_executable(bm_gain BM_gain.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_gain PRIVATE absl::span) -sfizz_link_benchmark(bm_gain) +target_link_libraries(bm_gain PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_gain PRIVATE ../src/sfizz ../src/external) add_executable(bm_divide BM_divide.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_divide PRIVATE absl::span) -sfizz_link_benchmark(bm_divide) +target_link_libraries(bm_divide PRIVATE absl::span benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_divide PRIVATE ../src/sfizz ../src/external) add_executable(bm_looping BM_looping.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_looping PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_looping) +target_link_libraries(bm_looping PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_looping PRIVATE ../src/sfizz ../src/external) add_executable(bm_saturating BM_saturating.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_saturating PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_saturating) +target_link_libraries(bm_saturating PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_saturating PRIVATE ../src/sfizz ../src/external) add_executable(bm_ramp BM_ramp.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_ramp PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_ramp) +target_link_libraries(bm_ramp PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_ramp PRIVATE ../src/sfizz ../src/external) add_executable(bm_ADSR BM_ADSR.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_ADSR PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_ADSR) +target_link_libraries(bm_ADSR PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_ADSR PRIVATE ../src/sfizz ../src/external) add_executable(bm_add BM_add.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_add PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_add) +target_link_libraries(bm_add PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_add PRIVATE ../src/sfizz ../src/external) add_executable(bm_multiplyAdd BM_multiplyAdd.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_multiplyAdd PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_multiplyAdd) +target_link_libraries(bm_multiplyAdd PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_multiplyAdd PRIVATE ../src/sfizz ../src/external) add_executable(bm_subtract BM_subtract.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_subtract PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_subtract) +target_link_libraries(bm_subtract PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_subtract PRIVATE ../src/sfizz ../src/external) add_executable(bm_copy BM_copy.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_copy PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_copy) +target_link_libraries(bm_copy PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_copy PRIVATE ../src/sfizz ../src/external) add_executable(bm_pan BM_pan.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_pan PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_pan) +target_link_libraries(bm_pan PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_pan PRIVATE ../src/sfizz ../src/external) add_executable(bm_mean BM_mean.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_mean PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_mean) +target_link_libraries(bm_mean PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_mean PRIVATE ../src/sfizz ../src/external) add_executable(bm_meanSquared BM_meanSquared.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_meanSquared PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_meanSquared) +target_link_libraries(bm_meanSquared PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_meanSquared PRIVATE ../src/sfizz ../src/external) add_executable(bm_cumsum BM_cumsum.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_cumsum PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_cumsum) +target_link_libraries(bm_cumsum PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_cumsum PRIVATE ../src/sfizz ../src/external) add_executable(bm_diff BM_diff.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_diff PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_diff) +target_link_libraries(bm_diff PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_diff PRIVATE ../src/sfizz ../src/external) add_executable(bm_interpolationCast BM_interpolationCast.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_interpolationCast PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_interpolationCast) +target_link_libraries(bm_interpolationCast PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_interpolationCast PRIVATE ../src/sfizz ../src/external) add_executable(bm_pointerIterationOrOffsets BM_pointerIterationOrOffsets.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_pointerIterationOrOffsets PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_pointerIterationOrOffsets) +target_link_libraries(bm_pointerIterationOrOffsets PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_pointerIterationOrOffsets PRIVATE ../src/sfizz ../src/external) if (NOT WIN32) add_executable(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_resample PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_resample) +target_link_libraries(bm_resample PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main samplerate) sfizz_link_libsndfile(bm_resample) -sfizz_link_libsamplerate(bm_resample) target_include_directories(bm_resample PRIVATE ../src/sfizz ../src/external) endif() add_executable(bm_envelopes BM_envelopes.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_envelopes PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_envelopes) +target_link_libraries(bm_envelopes PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) target_include_directories(bm_envelopes PRIVATE ../src/sfizz ../src/external) add_executable(bm_wavfile BM_wavfile.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_wavfile PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_wavfile) +target_link_libraries(bm_wavfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) sfizz_link_libsndfile(bm_wavfile) target_include_directories(bm_wavfile PRIVATE ../src/sfizz ../src/external) add_executable(bm_flacfile BM_flacfile.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_flacfile PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_flacfile) +target_link_libraries(bm_flacfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) sfizz_link_libsndfile(bm_flacfile) target_include_directories(bm_flacfile PRIVATE ../src/sfizz ../src/external) add_executable(bm_readChunk BM_readChunk.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_readChunk PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_readChunk) +target_link_libraries(bm_readChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) sfizz_link_libsndfile(bm_readChunk) target_include_directories(bm_readChunk PRIVATE ../src/sfizz ../src/external) add_executable(bm_resampleChunk BM_resampleChunk.cpp ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_resampleChunk PRIVATE absl::span absl::algorithm) -sfizz_link_benchmark(bm_resampleChunk) +target_link_libraries(bm_resampleChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main) sfizz_link_libsndfile(bm_resampleChunk) target_include_directories(bm_resampleChunk PRIVATE ../src/sfizz ../src/external) diff --git a/cmake/SfizzConfig.cmake b/cmake/SfizzConfig.cmake index aee23c4c..6fe9132c 100644 --- a/cmake/SfizzConfig.cmake +++ b/cmake/SfizzConfig.cmake @@ -22,9 +22,7 @@ endif() if (WIN32) find_package(LibSndFile REQUIRED) - find_package(benchmark CONFIG REQUIRED) find_path(SNDFILE_INCLUDE_DIR sndfile.hh) - find_path(SAMPLERATE_INCLUDE_DIR samplerate.h) set(CMAKE_CXX_STANDARD 17) add_compile_options(/Zc:__cplusplus) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") @@ -39,23 +37,6 @@ function(SFIZZ_LINK_LIBSNDFILE TARGET) endif() endfunction(SFIZZ_LINK_LIBSNDFILE) -function(SFIZZ_LINK_BENCHMARK TARGET) - if (WIN32) - target_link_libraries (${TARGET} PRIVATE benchmark::benchmark benchmark::benchmark_main) - else() - target_link_libraries(${TARGET} PRIVATE benchmark) - endif() -endfunction(SFIZZ_LINK_BENCHMARK) - -function(SFIZZ_LINK_LIBSAMPLERATE TARGET) - if (WIN32) - target_link_libraries (${TARGET} PRIVATE samplerate) - target_include_directories(${TARGET} PUBLIC ${SAMPLERATE_INCLUDE_DIR}) - else() - target_link_libraries(${TARGET} PRIVATE samplerate) - endif() -endfunction(SFIZZ_LINK_LIBSAMPLERATE) - # If we build with Clang use libc++ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT ANDROID) set(USE_LIBCPP ON CACHE BOOL "Use libc++ with clang")