Add library st_audiofile_formats usable separately

This commit is contained in:
Jean Pierre Cimalando 2021-03-23 12:54:59 +01:00
parent 216b97a3bf
commit 5610c2ec90
3 changed files with 23 additions and 17 deletions

View file

@ -154,6 +154,11 @@ SFIZZ_SOURCES += \
external/st_audiofile/src/st_audiofile_libs.c \ external/st_audiofile/src/st_audiofile_libs.c \
external/st_audiofile/src/st_audiofile_sndfile.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 += \ SFIZZ_C_FLAGS += \
-I$(SFIZZ_DIR)/external/st_audiofile/src \ -I$(SFIZZ_DIR)/external/st_audiofile/src \
-I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs

View file

@ -4,24 +4,27 @@ project(st_audiofile)
option(ST_AUDIO_FILE_USE_SNDFILE "Use sndfile" OFF) option(ST_AUDIO_FILE_USE_SNDFILE "Use sndfile" OFF)
set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "" CACHE STRING "Name of external sndfile target") 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.c"
"src/st_audiofile_common.c" "src/st_audiofile_common.c"
"src/st_audiofile_libs.c"
"src/st_audiofile_sndfile.c") "src/st_audiofile_sndfile.c")
target_include_directories(st_audiofile 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 "src"
PUBLIC "thirdparty/dr_libs" PUBLIC "thirdparty/dr_libs"
PUBLIC "thirdparty/stb_vorbis") PUBLIC "thirdparty/stb_vorbis")
add_executable(st_info add_subdirectory("thirdparty/libaiff" EXCLUDE_FROM_ALL)
"src/st_info.c") target_link_libraries(st_audiofile_formats PUBLIC aiff::aiff)
target_link_libraries(st_info
PRIVATE st_audiofile)
###
if(NOT ST_AUDIO_FILE_USE_SNDFILE) if(NOT ST_AUDIO_FILE_USE_SNDFILE)
add_subdirectory("thirdparty/libaiff" EXCLUDE_FROM_ALL) target_link_libraries(st_audiofile PRIVATE st_audiofile_formats)
target_link_libraries(st_audiofile PRIVATE aiff::aiff)
else() else()
target_compile_definitions(st_audiofile target_compile_definitions(st_audiofile
PUBLIC "ST_AUDIO_FILE_USE_SNDFILE=1") PUBLIC "ST_AUDIO_FILE_USE_SNDFILE=1")
@ -31,11 +34,12 @@ else()
else() else()
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(Sndfile "sndfile" REQUIRED) pkg_check_modules(Sndfile "sndfile" REQUIRED)
target_include_directories(st_audiofile target_include_directories(st_audiofile PUBLIC ${Sndfile_INCLUDE_DIRS})
PUBLIC ${Sndfile_INCLUDE_DIRS}) target_link_libraries(st_audiofile PUBLIC ${Sndfile_LIBRARIES})
target_link_libraries(st_audiofile link_directories(${Sndfile_LIBRARY_DIRS})
PUBLIC ${Sndfile_LIBRARIES})
link_directories(
${Sndfile_LIBRARY_DIRS})
endif() endif()
endif() endif()
###
add_executable(st_info "src/st_info.c")
target_link_libraries(st_info PRIVATE st_audiofile)

View file

@ -4,7 +4,6 @@
// license. You should have receive a LICENSE.md file along with the code. // 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 not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
#if !defined(ST_AUDIO_FILE_USE_SNDFILE)
#define DR_WAV_IMPLEMENTATION #define DR_WAV_IMPLEMENTATION
#define DR_FLAC_IMPLEMENTATION #define DR_FLAC_IMPLEMENTATION
#define DR_MP3_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; return NULL;
} }
#endif #endif
#endif // !defined(ST_AUDIO_FILE_USE_SNDFILE)