Use hiir and filesystem as interface libraries

This commit is contained in:
Jean Pierre Cimalando 2020-12-14 11:43:47 +01:00
parent bd3f660c12
commit 96a462e20d
7 changed files with 27 additions and 18 deletions

View file

@ -20,19 +20,18 @@ endif()
add_library(bm_simd STATIC ${BENCHMARK_SIMD_SOURCES})
target_link_libraries(bm_simd PRIVATE absl::span sfizz::cpuid)
target_include_directories(bm_simd PRIVATE ../src/external)
add_library(bm_ftz STATIC ../src/sfizz/ScopedFTZ.cpp)
macro(sfizz_add_benchmark TARGET)
add_executable("${TARGET}" ${ARGN})
target_link_libraries("${TARGET}"
PRIVATE absl::span absl::algorithm
PRIVATE sfizz::filesystem absl::span absl::algorithm
PRIVATE benchmark::benchmark benchmark::benchmark_main
PRIVATE bm_simd bm_ftz)
if(LIBATOMIC_FOUND)
target_link_libraries("${TARGET}" PRIVATE atomic)
endif()
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
target_include_directories("${TARGET}" PRIVATE ../src/sfizz)
sfizz_enable_fast_math("${TARGET}")
endmacro()
@ -75,7 +74,7 @@ target_link_libraries(bm_powerFollower PRIVATE sfizz::sfizz)
if(TARGET sfizz::samplerate)
sfizz_add_benchmark(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES})
target_link_libraries(bm_resample PRIVATE sfizz::samplerate sfizz::sndfile sfizz::cpuid)
target_link_libraries(bm_resample PRIVATE sfizz::samplerate sfizz::sndfile sfizz::cpuid sfizz::hiir)
endif()
sfizz_add_benchmark(bm_envelopes BM_envelopes.cpp)
@ -95,7 +94,7 @@ sfizz_add_benchmark(bm_readChunkFlac BM_readChunkFlac.cpp)
target_link_libraries(bm_readChunkFlac PRIVATE sfizz::sndfile)
sfizz_add_benchmark(bm_resampleChunk BM_resampleChunk.cpp)
target_link_libraries(bm_resampleChunk PRIVATE sfizz::sndfile)
target_link_libraries(bm_resampleChunk PRIVATE sfizz::sndfile sfizz::hiir)
sfizz_add_benchmark(bm_interpolators BM_interpolators.cpp)

View file

@ -126,7 +126,6 @@ SFIZZ_SOURCES = \
### Other internal
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/sfizz
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/src/external
# Pkg-config dependency
@ -175,6 +174,14 @@ SFIZZ_CXX_FLAGS += \
-I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/libaiff
endif
# hiir dependency
SFIZZ_CXX_FLAGS += -I$(SFIZZ_DIR)/src/external/hiir
# ghc::filesystem dependency
SFIZZ_CXX_FLAGS += -I$(SFIZZ_DIR)/external/filesystem/include
### Abseil dependency
SFIZZ_C_FLAGS += -I$(SFIZZ_DIR)/external/abseil-cpp

View file

@ -37,10 +37,10 @@ if(TARGET Qt5::Widgets)
endif()
add_executable(eq_apply EQ.cpp)
target_link_libraries(eq_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts)
target_link_libraries(eq_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts sfizz::filesystem)
add_executable(filter_apply Filter.cpp)
target_link_libraries(filter_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts)
target_link_libraries(filter_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts sfizz::filesystem)
add_executable(sfizz_plot_curve PlotCurve.cpp)
target_link_libraries(sfizz_plot_curve PRIVATE sfizz::sfizz)

View file

@ -69,7 +69,7 @@ else()
target_include_directories(sfizz_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
target_link_libraries(sfizz_editor PRIVATE ${sfizz-gio_LIBRARIES})
endif()
target_include_directories(sfizz_editor PRIVATE "../src/external") # ghc::filesystem
target_link_libraries(sfizz_editor PRIVATE sfizz::filesystem)
# layout tool
if(NOT CMAKE_CROSSCOMPILING)

View file

@ -30,7 +30,7 @@ clang-tidy \
vst/SfizzVstProcessor.cpp \
vst/SfizzVstEditor.cpp \
vst/SfizzVstState.cpp \
-- -Iexternal/abseil-cpp -Iexternal/jsl/include -Isrc/external -Isrc/external/pugixml/src \
-- -Iexternal/abseil-cpp -Iexternal/jsl/include -Iexternal/filesystem/include -Isrc/external/hiir -Isrc/external/pugixml/src \
-Iexternal/st_audiofile/src -Iexternal/st_audiofile/thirdparty/dr_libs \
-Isrc/sfizz -Isrc -Isrc/external/spline -Isrc/external/cpuid/src \
-Ivst -Ivst/external/VST_SDK/VST3_SDK -Ivst/external/VST_SDK/VST3_SDK/vstgui4 -Ivst/external/ring_buffer \

View file

@ -214,11 +214,13 @@ source_group("Other Files" FILES ${SFIZZ_PARSER_OTHER})
# Sfizz parser library
add_library(sfizz_parser STATIC)
add_library(sfizz::parser ALIAS sfizz_parser)
target_sources(sfizz_parser PRIVATE
${SFIZZ_PARSER_HEADERS} ${SFIZZ_PARSER_SOURCES} ${SFIZZ_PARSER_OTHER})
target_include_directories(sfizz_parser PUBLIC sfizz)
target_include_directories(sfizz_parser PUBLIC external)
target_link_libraries(sfizz_parser PUBLIC absl::strings PRIVATE absl::flat_hash_map)
target_link_libraries(sfizz_parser
PUBLIC sfizz::filesystem absl::strings
PRIVATE absl::flat_hash_map)
# OSC messaging library
set(SFIZZ_MESSAGING_HEADERS
@ -237,12 +239,13 @@ target_link_libraries(sfizz_messaging PUBLIC absl::strings)
# Sfizz static library
add_library(sfizz_static STATIC)
add_library(sfizz::static ALIAS sfizz_static)
target_sources(sfizz_static PRIVATE
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
target_include_directories(sfizz_static PUBLIC .)
target_include_directories(sfizz_static PUBLIC external)
target_link_libraries(sfizz_static PUBLIC absl::strings absl::span)
target_link_libraries(sfizz_static PRIVATE sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::kissfft sfizz::cpuid sfizz::jsl sfizz::atomic)
target_link_libraries(sfizz_static PUBLIC absl::strings absl::span sfizz::filesystem)
target_link_libraries(sfizz_static PRIVATE sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::hiir sfizz::kissfft sfizz::cpuid sfizz::jsl sfizz::atomic)
set_target_properties(sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
if(SFIZZ_USE_SNDFILE)
target_compile_definitions(sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1)
@ -263,17 +266,17 @@ endif()
configure_file(${PROJECT_SOURCE_DIR}/scripts/doxygen/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY)
add_library(sfizz::parser ALIAS sfizz_parser)
add_library(sfizz::sfizz ALIAS sfizz_static)
# Shared library and installation target
if(SFIZZ_SHARED)
add_library(sfizz_shared SHARED)
add_library(sfizz::shared ALIAS sfizz_shared)
target_sources(sfizz_shared PRIVATE
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
target_include_directories(sfizz_shared PRIVATE .)
target_include_directories(sfizz_shared PRIVATE external)
target_link_libraries(sfizz_shared PRIVATE absl::strings absl::span sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::kissfft sfizz::cpuid sfizz::jsl sfizz::atomic)
target_link_libraries(sfizz_shared PRIVATE absl::strings absl::span sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz::pugixml sfizz::spline sfizz::tunings sfizz::hiir sfizz::kissfft sfizz::cpuid sfizz::jsl sfizz::filesystem sfizz::atomic)
if(SFIZZ_USE_SNDFILE)
target_compile_definitions(sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1)
target_link_libraries(sfizz_shared PUBLIC st_audiofile)

View file

@ -60,7 +60,7 @@ endif()
target_link_libraries(${VSTPLUGIN_PRJ_NAME}
PRIVATE ${PROJECT_NAME}::${PROJECT_NAME}
PRIVATE sfizz_editor
PRIVATE sfizz::pugixml)
PRIVATE sfizz::pugixml sfizz::filesystem)
target_include_directories(${VSTPLUGIN_PRJ_NAME}
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
@ -198,7 +198,7 @@ elseif(SFIZZ_AU)
target_link_libraries(${AUPLUGIN_PRJ_NAME}
PRIVATE ${PROJECT_NAME}::${PROJECT_NAME}
PRIVATE sfizz_editor
PRIVATE sfizz::pugixml)
PRIVATE sfizz::pugixml sfizz::filesystem)
target_include_directories(${AUPLUGIN_PRJ_NAME}
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES