From 5610c2ec901aff1253e9c5df697d0c152aea2b13 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Tue, 23 Mar 2021 12:54:59 +0100 Subject: [PATCH] Add library st_audiofile_formats usable separately --- common.mk | 5 +++ external/st_audiofile/CMakeLists.txt | 32 +++++++++++-------- external/st_audiofile/src/st_audiofile_libs.c | 3 -- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/common.mk b/common.mk index 2bc774f1..a8b9bfa4 100644 --- a/common.mk +++ b/common.mk @@ -154,6 +154,11 @@ SFIZZ_SOURCES += \ external/st_audiofile/src/st_audiofile_libs.c \ external/st_audiofile/src/st_audiofile_sndfile.c +ifneq ($(SFIZZ_USE_SNDFILE),1) +SFIZZ_SOURCES += \ + external/st_audiofile/src/st_audiofile_libs.c +endif + SFIZZ_C_FLAGS += \ -I$(SFIZZ_DIR)/external/st_audiofile/src \ -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs diff --git a/external/st_audiofile/CMakeLists.txt b/external/st_audiofile/CMakeLists.txt index 643c0992..06b5251b 100644 --- a/external/st_audiofile/CMakeLists.txt +++ b/external/st_audiofile/CMakeLists.txt @@ -4,24 +4,27 @@ project(st_audiofile) option(ST_AUDIO_FILE_USE_SNDFILE "Use sndfile" OFF) set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "" CACHE STRING "Name of external sndfile target") -add_library(st_audiofile STATIC +add_library(st_audiofile STATIC EXCLUDE_FROM_ALL "src/st_audiofile.c" "src/st_audiofile_common.c" - "src/st_audiofile_libs.c" "src/st_audiofile_sndfile.c") target_include_directories(st_audiofile + PUBLIC "src") + +### +add_library(st_audiofile_formats STATIC EXCLUDE_FROM_ALL + "src/st_audiofile_libs.c") +target_include_directories(st_audiofile_formats PUBLIC "src" PUBLIC "thirdparty/dr_libs" PUBLIC "thirdparty/stb_vorbis") -add_executable(st_info - "src/st_info.c") -target_link_libraries(st_info - PRIVATE st_audiofile) +add_subdirectory("thirdparty/libaiff" EXCLUDE_FROM_ALL) +target_link_libraries(st_audiofile_formats PUBLIC aiff::aiff) +### if(NOT ST_AUDIO_FILE_USE_SNDFILE) - add_subdirectory("thirdparty/libaiff" EXCLUDE_FROM_ALL) - target_link_libraries(st_audiofile PRIVATE aiff::aiff) + target_link_libraries(st_audiofile PRIVATE st_audiofile_formats) else() target_compile_definitions(st_audiofile PUBLIC "ST_AUDIO_FILE_USE_SNDFILE=1") @@ -31,11 +34,12 @@ else() else() find_package(PkgConfig REQUIRED) pkg_check_modules(Sndfile "sndfile" REQUIRED) - target_include_directories(st_audiofile - PUBLIC ${Sndfile_INCLUDE_DIRS}) - target_link_libraries(st_audiofile - PUBLIC ${Sndfile_LIBRARIES}) - link_directories( - ${Sndfile_LIBRARY_DIRS}) + target_include_directories(st_audiofile PUBLIC ${Sndfile_INCLUDE_DIRS}) + target_link_libraries(st_audiofile PUBLIC ${Sndfile_LIBRARIES}) + link_directories(${Sndfile_LIBRARY_DIRS}) endif() endif() + +### +add_executable(st_info "src/st_info.c") +target_link_libraries(st_info PRIVATE st_audiofile) diff --git a/external/st_audiofile/src/st_audiofile_libs.c b/external/st_audiofile/src/st_audiofile_libs.c index 635c19d4..0bbcccca 100644 --- a/external/st_audiofile/src/st_audiofile_libs.c +++ b/external/st_audiofile/src/st_audiofile_libs.c @@ -4,7 +4,6 @@ // license. You should have receive a LICENSE.md file along with the code. // If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz -#if !defined(ST_AUDIO_FILE_USE_SNDFILE) #define DR_WAV_IMPLEMENTATION #define DR_FLAC_IMPLEMENTATION #define DR_MP3_IMPLEMENTATION @@ -28,5 +27,3 @@ stb_vorbis* stb_vorbis_open_filename_w(const wchar_t* filename, int* error, cons return NULL; } #endif - -#endif // !defined(ST_AUDIO_FILE_USE_SNDFILE)