cmake_minimum_required (VERSION 3.1.3) project(libsndfile VERSION 1.0.29) # # Variables # set (CMAKE_C_STANDARD 99) set (CMAKE_C_STANDARD_REQUIRED TRUE) set_property(GLOBAL PROPERTY USE_FOLDERS ON) set (CPACK_PACKAGE_NAME ${PROJECT_NAME}) set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) set (CPACK_PACKAGE_VERSION_STAGE "pre1") set (CPACK_PACKAGE_VERSION_FULL "${PROJECT_VERSION}${CPACK_PACKAGE_VERSION_STAGE}") # # System-wide includes # include (GNUInstallDirs) include (FeatureSummary) include (CMakeDependentOption) if (ENABLE_CPACK) set (CPACK_PACKAGE_VENDOR "Erik de Castro Lopo") set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "A library for reading and writing audio files") set(SNDFILE_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}) if (SNDFILE_SYSTEM_NAME MATCHES "Windows") if (CMAKE_SIZEOF_VOID_P EQUAL 8) set (SNDFILE_SYSTEM_NAME win64) else () set (SNDFILE_SYSTEM_NAME win32) endif () endif () set (CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_FULL}-${SNDFILE_SYSTEM_NAME}) include (CPack) endif (ENABLE_CPACK) # # Options # option (BUILD_STATIC_LIBS "Build static libraries" ON) option (BUILD_SHARED_LIBS "Build shared libraries" ON) option (BUILD_PROGRAMS "Build programs" ON) option (BUILD_EXAMPLES "Build examples" ON) option (BUILD_TESTING "Build tests" ON) option (ENABLE_CPACK "Enable CPack support" ON) option (DISABLE_EXTERNAL_LIBS "Disable use of FLAC, Ogg and Vorbis" OFF) option (ENABLE_EXPERIMENTAL "Enable experimental code" OFF) option (DISABLE_CPU_CLIP "Disable tricky cpu specific clipper" OFF) option (ENABLE_BOW_DOCS "Enable black-on-white html docs" OFF) if (MSVC OR MINGW) option (ENABLE_STATIC_RUNTIME "Enable static runtime" OFF) endif (MSVC OR MINGW) option (ENABLE_PACKAGE_CONFIG "Generate and install package config file" ON) if ((NOT BUILD_STATIC_LIBS) AND (NOT BUILD_SHARED_LIBS)) message (" Both options BUILD_STATIC_LIBS and BUILD_SHARED_LIBS are manually set to OFF. To prevent configuration error BUILD_STATIC_LIBS is now set to ON.\n") set (BUILD_STATIC_LIBS ON) endif () if ((NOT BUILD_STATIC_LIBS) AND ENABLE_TESTING) set (BUILD_TESTING OFF) message ("Build testing required static libraries. To prevent build errors BUILD_TESTING disabled.") endif () set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") # # Setup definitions # include(${CMAKE_MODULE_PATH}/SndFileChecks.cmake) cmake_dependent_option (BUILD_REGTEST "Build regtest" ON "HAVE_SQLITE3" OFF) add_feature_info(BUILD_STATIC_LIBS BUILD_STATIC_LIBS "build static libraries") add_feature_info(BUILD_SHARED_LIBS BUILD_SHARED_LIBS "build shared libraries") add_feature_info(DISABLE_EXTERNAL_LIBS DISABLE_EXTERNAL_LIBS "disable use of FLAC, Ogg and Vorbis") add_feature_info(ENABLE_EXPERIMENTAL ENABLE_EXPERIMENTAL "enable experimental code") add_feature_info(BUILD_TESTING BUILD_TESTING "build tests") add_feature_info(BUILD_REGTEST BUILD_REGTEST "build regtest") add_feature_info(ENABLE_CPACK ENABLE_CPACK "enable CPack support") add_feature_info(DISABLE_CPU_CLIP DISABLE_CPU_CLIP "Disable tricky cpu specific clipper") add_feature_info(ENABLE_BOW_DOCS ENABLE_BOW_DOCS "enable black-on-white html docs") add_feature_info(ENABLE_PACKAGE_CONFIG ENABLE_PACKAGE_CONFIG "generate and install package config file") if (MSVC OR MINGW) add_feature_info(ENABLE_STATIC_RUNTIME ENABLE_STATIC_RUNTIME "Enable static runtime") endif (MSVC OR MINGW) set_package_properties(Ogg PROPERTIES TYPE RECOMMENDED URL "www.xiph.org/ogg/" DESCRIPTION "library for manipulating ogg bitstreams" PURPOSE "Required to enable Vorbis, Speex and Opus support") set_package_properties(Vorbis PROPERTIES TYPE RECOMMENDED URL "www.vorbis.com/" DESCRIPTION "open source lossy audio codec" PURPOSE "Enables Vorbis support") set_package_properties(FLAC PROPERTIES TYPE RECOMMENDED URL "www.xiph.org/flac/" DESCRIPTION "Free Lossless Audio Codec Library" PURPOSE "Enables FLAC support") set_package_properties(Speex PROPERTIES TYPE OPTIONAL URL "www.speex.org/" DESCRIPTION "an audio codec tuned for speech" PURPOSE "Enables experemental Speex support") set_package_properties(SQLite3 PROPERTIES TYPE OPTIONAL URL "www.sqlite.org/" DESCRIPTION "light weight SQL database engine." PURPOSE "Enables regtest") if(BUILD_SHARED_LIBS) set_package_properties(PythonInterp PROPERTIES TYPE REQUIRED URL "www.python.org/" DESCRIPTION "Python is a widely used high-level programming language." PURPOSE "Required to build shared libraries") endif() feature_summary (WHAT ALL) # # Setup configuration # file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/src/config.h") configure_file (src/config.h.cmake src/config.h) file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/src/sndfile.h") configure_file (src/sndfile.h.in src/sndfile.h) set (PC_PREFIX ${CMAKE_INSTALL_PREFIX}) set (PC_EXEC_PREFIX "\$\{prefix\}") set (PC_LIBDIR "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}") set (PC_INCLUDEDIR "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}") set (PC_VERSION ${PROJECT_VERSION}) if (EXTERNAL_XIPH_LIBS) set (PC_PRIVATE_LIBS "-lFLAC -lvorbisenc") endif () file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/sndfile.pc") configure_file (sndfile.pc.cmake.in sndfile.pc @ONLY) # # libsndfile # # Public libsndfile headers set (include_HEADERS src/sndfile.hh) set (nodist_include_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/src/sndfile.h") # Private libsndfile headers set (noinst_HEADERS src/common.h src/sfconfig.h src/sfendian.h src/wavlike.h src/sf_unistd.h src/ogg.h src/chanmap.h) # Common libsndfile sources set (COMMON src/common.c src/file_io.c src/command.c src/pcm.c src/ulaw.c src/alaw.c src/float32.c src/double64.c src/ima_adpcm.c src/ms_adpcm.c src/gsm610.c src/dwvw.c src/vox_adpcm.c src/interleave.c src/strings.c src/dither.c src/cart.c src/broadcast.c src/audio_detect.c src/ima_oki_adpcm.c src/ima_oki_adpcm.h src/alac.c src/chunk.c src/ogg.c src/chanmap.c src/id3.c) if (WIN32) list (APPEND COMMON src/windows.c) if (BUILD_SHARED_LIBS) list (APPEND COMMON src/version-metadata.rc) endif (BUILD_SHARED_LIBS) endif (WIN32) # File specific libsndfile sources set (FILESPECIFIC src/sndfile.c src/aiff.c src/au.c src/avr.c src/caf.c src/dwd.c src/flac.c src/g72x.c src/htk.c src/ircam.c src/macos.c src/mat4.c src/mat5.c src/nist.c src/paf.c src/pvf.c src/raw.c src/rx2.c src/sd2.c src/sds.c src/svx.c src/txw.c src/voc.c src/wve.c src/w64.c src/wavlike.c src/wav.c src/xi.c src/mpc2k.c src/rf64.c src/ogg_vorbis.c src/ogg_speex.c src/ogg_pcm.c src/ogg_opus.c src/nms_adpcm.c) # GSM610 sources set (libgsm_SOURCES src/GSM610/config.h src/GSM610/gsm.h src/GSM610/gsm610_priv.h src/GSM610/add.c src/GSM610/code.c src/GSM610/decode.c src/GSM610/gsm_create.c src/GSM610/gsm_decode.c src/GSM610/gsm_destroy.c src/GSM610/gsm_encode.c src/GSM610/gsm_option.c src/GSM610/long_term.c src/GSM610/lpc.c src/GSM610/preprocess.c src/GSM610/rpe.c src/GSM610/short_term.c src/GSM610/table.c) source_group ("GSM610" FILES ${libgsm_SOURCES}) # G72x sources set (libg72x_SOURCES src/G72x/g72x.h src/G72x/g72x_priv.h src/G72x/g721.c src/G72x/g723_16.c src/G72x/g723_24.c src/G72x/g723_40.c src/G72x/g72x.c) source_group ("G72x" FILES ${libg72x_SOURCES}) # ALAC sources set (libalac_SOURCES src/ALAC/ALACAudioTypes.h src/ALAC/ALACBitUtilities.h src/ALAC/EndianPortable.h src/ALAC/aglib.h src/ALAC/dplib.h src/ALAC/matrixlib.h src/ALAC/alac_codec.h src/ALAC/shift.h src/ALAC/ALACBitUtilities.c src/ALAC/ag_dec.c src/ALAC/ag_enc.c src/ALAC/dp_dec.c src/ALAC/dp_enc.c src/ALAC/matrix_dec.c src/ALAC/matrix_enc.c src/ALAC/alac_decoder.c src/ALAC/alac_encoder.c) source_group ("ALAC" FILES ${libalac_SOURCES}) # Headers to be installed on target machine set (libsndfile_PUBLIC_HEADERS ${include_HEADERS} ${nodist_include_HEADERS}) set (libsndfile_SOURCES ${COMMON} ${FILESPECIFIC} ${noinst_HEADERS} ${libgsm_SOURCES} ${libg72x_SOURCES} ${libalac_SOURCES} ${libsndfile_PUBLIC_HEADERS}) # # libsndfile static library # if (BUILD_STATIC_LIBS) set (SNDFILE_STATIC_TARGET sndfile-static) add_library (${SNDFILE_STATIC_TARGET} STATIC ${libsndfile_SOURCES}) target_include_directories(${SNDFILE_STATIC_TARGET} PUBLIC $ $ $) if (LIBM_REQUIRED) target_link_libraries (${SNDFILE_STATIC_TARGET} PUBLIC ${M_LIBRARY}) endif () if (NOT DISABLE_EXTERNAL_LIBS) target_link_libraries (${SNDFILE_STATIC_TARGET} PUBLIC ${EXTERNAL_XIPH_LIBS}) target_include_directories (${SNDFILE_STATIC_TARGET} PRIVATE ${OGG_INCLUDE_DIRS} ${VORBIS_INCLUDE_DIRS} ${FLAC_INCLUDE_DIRS}) target_compile_definitions (${SNDFILE_STATIC_TARGET} PRIVATE ${FLAC_DEFINITIONS}) if (ENABLE_EXPERIMENTAL) target_link_libraries (${SNDFILE_STATIC_TARGET} PUBLIC ${SPEEX_LIBRARIES}) target_include_directories (${SNDFILE_STATIC_TARGET} PRIVATE ${SPEEX_INCLUDE_DIRS}) endif () endif () if (WIN32) set_target_properties (${SNDFILE_STATIC_TARGET} PROPERTIES PREFIX "lib") endif () # Remove "-static" from output name set_target_properties (${SNDFILE_STATIC_TARGET} PROPERTIES OUTPUT_NAME "sndfile") set_target_properties (${SNDFILE_STATIC_TARGET} PROPERTIES PUBLIC_HEADER "${libsndfile_PUBLIC_HEADERS}") endif () if (BUILD_SHARED_LIBS) set (SNDFILE_SHARED_TARGET sndfile-shared) if (WIN32) set (VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}) set (PACKAGE_NAME ${CPACK_PACKAGE_NAME}) set (GEN_TOOL cmake) set (WIN_RC_VERSION "${CPACK_PACKAGE_VERSION_MAJOR},${CPACK_PACKAGE_VERSION_MINOR},${CPACK_PACKAGE_VERSION_PATCH}") set (CLEAN_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") set (PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/src/version-metadata.rc") configure_file(src/version-metadata.rc.in src/version-metadata.rc @ONLY) list (APPEND libsndfile_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/src/version-metadata.rc) endif (WIN32) add_library(${SNDFILE_SHARED_TARGET} SHARED ${libsndfile_SOURCES}) target_include_directories(${SNDFILE_SHARED_TARGET} PUBLIC $ $ $) if (LIBM_REQUIRED) target_link_libraries (${SNDFILE_SHARED_TARGET} PRIVATE ${M_LIBRARY}) endif (LIBM_REQUIRED) if (NOT DISABLE_EXTERNAL_LIBS) target_link_libraries (${SNDFILE_SHARED_TARGET} PRIVATE ${EXTERNAL_XIPH_LIBS}) target_include_directories (${SNDFILE_SHARED_TARGET} PRIVATE ${OGG_INCLUDE_DIRS} ${VORBIS_INCLUDE_DIRS} ${FLAC_INCLUDE_DIRS}) target_compile_definitions (${SNDFILE_SHARED_TARGET} PRIVATE ${FLAC_DEFINITIONS}) if (ENABLE_EXPERIMENTAL) target_link_libraries (${SNDFILE_SHARED_TARGET} PRIVATE ${SPEEX_LIBRARIES}) target_include_directories (${SNDFILE_SHARED_TARGET} PRIVATE ${SPEEX_INCLUDE_DIRS}) endif (ENABLE_EXPERIMENTAL) endif (NOT DISABLE_EXTERNAL_LIBS) set_target_properties (${SNDFILE_SHARED_TARGET} PROPERTIES PUBLIC_HEADER "${libsndfile_PUBLIC_HEADERS}" SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION}) if (WIN32) set_target_properties(${SNDFILE_SHARED_TARGET} PROPERTIES ARCHIVE_OUTPUT_NAME "libsndfile-${PROJECT_VERSION_MAJOR}" PREFIX "lib" OUTPUT_NAME "sndfile-${PROJECT_VERSION_MAJOR}") else () set_target_properties(${SNDFILE_SHARED_TARGET} PROPERTIES OUTPUT_NAME "sndfile") endif (WIN32) # Symbol files generation if (WIN32) set(SYMBOL_FILENAME "libsndfile-${PROJECT_VERSION_MAJOR}.def") set(SYMBOL_OS "win32") elseif((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR (CMAKE_SYSTEM_NAME MATCHES "Rhapsody")) set(SYMBOL_FILENAME "Symbols.darwin") set(SYMBOL_OS "darwin") elseif(CMAKE_SYSTEM_NAME MATCHES "OS2") set(SYMBOL_FILENAME "Symbols.os2") set(SYMBOL_OS "os2") elseif(UNIX) set(SYMBOL_FILENAME "Symbols.gnu-binutils") set(SYMBOL_OS "linux") endif() if (DEFINED SYMBOL_OS) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME} COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/create_symbols_file.py ${SYMBOL_OS} ${PROJECT_VERSION_MAJOR} > ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME} COMMENT "Generating ${SYMBOL_FILENAME}...") add_custom_target(GENFILES DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}) if (SYMBOL_OS MATCHES "win32") target_sources(${SNDFILE_SHARED_TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}) elseif(SYMBOL_OS MATCHES "darwin") add_dependencies(${SNDFILE_SHARED_TARGET} GENFILES) set_property(TARGET ${SNDFILE_SHARED_TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") elseif(SYMBOL_OS MATCHES "os") add_dependencies(${SNDFILE_SHARED_TARGET} GENFILES) set_property(TARGET ${SNDFILE_SHARED_TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") elseif(UNIX) add_dependencies(${SNDFILE_SHARED_TARGET} GENFILES) set_property(TARGET ${SNDFILE_SHARED_TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") endif() endif() endif (BUILD_SHARED_LIBS) # # Programs # # Select libsndfile version to link if (BUILD_SHARED_LIBS) set (SNDFILE_TARGET ${SNDFILE_SHARED_TARGET}) else (NOT BUILD_SHARED_LIBS) set (SNDFILE_TARGET ${SNDFILE_STATIC_TARGET}) endif (BUILD_SHARED_LIBS) if (BUILD_PROGRAMS) # sndfile-info set (sndfile_info_SOURCES programs/sndfile-info.c programs/common.c programs/common.h) add_executable (sndfile-info ${sndfile_info_SOURCES}) target_link_libraries(sndfile-info PUBLIC ${SNDFILE_TARGET}) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(sndfile-info PRIVATE ${M_LIBRARY}) endif () # sndfile-play if (NOT BEOS) set (sndfile_play_SOURCES programs/sndfile-play.c programs/common.c programs/common.h) else () set (sndfile_play_SOURCES programs/sndfile-play-beos.cpp) endif () add_executable (sndfile-play ${sndfile_play_SOURCES}) target_link_libraries(sndfile-play PUBLIC ${SNDFILE_TARGET}) if (WIN32) target_link_libraries(sndfile-play PRIVATE Winmm.lib) # Maybe ALSA & Sndio are present in BeOS. They are not required # so skip them anyway. elseif ((NOT BEOS) AND ALSA_FOUND) target_include_directories (sndfile-play PRIVATE ${ALSA_INCLUDE_DIRS}) target_link_libraries(sndfile-play PRIVATE ${ALSA_LIBRARIES}) elseif ((NOT BEOS) AND Sndio_FOUND) target_include_directories (sndfile-play PRIVATE ${Sndio_INCLUDE_DIRS}) target_link_libraries(sndfile-play PRIVATE ${Sndio_LIBRARIES}) endif () # sndfile-convert set (sndfile_convert_SOURCES programs/sndfile-convert.c programs/common.c programs/common.h) add_executable (sndfile-convert ${sndfile_convert_SOURCES}) target_link_libraries(sndfile-convert PUBLIC ${SNDFILE_TARGET}) # sndfile-cmp set (sndfile_cmp_SOURCES programs/sndfile-cmp.c programs/common.c programs/common.h) add_executable (sndfile-cmp ${sndfile_cmp_SOURCES}) target_link_libraries(sndfile-cmp PUBLIC ${SNDFILE_TARGET}) # sndfile-metadata-set set (sndfile_metadata_set_SOURCES programs/sndfile-metadata-set.c programs/common.c programs/common.h) add_executable (sndfile-metadata-set ${sndfile_metadata_set_SOURCES}) target_link_libraries(sndfile-metadata-set PUBLIC ${SNDFILE_TARGET}) # sndfile-metadata-get set (sndfile_metadata_get_SOURCES programs/sndfile-metadata-get.c programs/common.c programs/common.h) add_executable (sndfile-metadata-get ${sndfile_metadata_get_SOURCES}) target_link_libraries(sndfile-metadata-get PUBLIC ${SNDFILE_TARGET}) # sndfile-interleave set (sndfile_interleave_SOURCES programs/sndfile-interleave.c programs/common.c programs/common.h) add_executable (sndfile-interleave ${sndfile_interleave_SOURCES}) target_link_libraries(sndfile-interleave PUBLIC ${SNDFILE_TARGET}) # sndfile-deinterleave set (sndfile_deinterleave_SOURCES programs/sndfile-deinterleave.c programs/common.c programs/common.h) add_executable (sndfile-deinterleave ${sndfile_deinterleave_SOURCES}) target_link_libraries(sndfile-deinterleave PUBLIC ${SNDFILE_TARGET}) # sndfile-concat set (sndfile_concat_SOURCES programs/sndfile-concat.c programs/common.c programs/common.h) add_executable (sndfile-concat ${sndfile_concat_SOURCES}) target_link_libraries(sndfile-concat PUBLIC ${SNDFILE_TARGET}) # sndfile-salvage set (sndfile_salvage_SOURCES programs/sndfile-salvage.c programs/common.c programs/common.h) add_executable (sndfile-salvage ${sndfile_salvage_SOURCES}) target_link_libraries(sndfile-salvage PUBLIC ${SNDFILE_TARGET}) set (SNDFILE_PROGRAM_TARGETS sndfile-info sndfile-play sndfile-convert sndfile-cmp sndfile-metadata-set sndfile-metadata-get sndfile-interleave sndfile-deinterleave sndfile-concat sndfile-salvage) set_target_properties(${SNDFILE_PROGRAM_TARGETS} PROPERTIES FOLDER Programs) endif (BUILD_PROGRAMS) # # Examples # if (BUILD_EXAMPLES) # sndfile-to-text set (sndfile-to-text_SOURCES examples/sndfile-to-text.c) add_executable (sndfile-to-text ${sndfile-to-text_SOURCES}) target_link_libraries(sndfile-to-text PUBLIC ${SNDFILE_TARGET}) # sndfile-loopify set (sndfile_loopify_SOURCES examples/sndfile-loopify.c) add_executable (sndfile-loopify ${sndfile_loopify_SOURCES}) target_link_libraries(sndfile-loopify PUBLIC ${SNDFILE_TARGET}) # make_sine set (make_sine_SOURCES examples/make_sine.c) add_executable (make_sine ${make_sine_SOURCES}) target_link_libraries(make_sine PUBLIC ${SNDFILE_TARGET}) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(make_sine PRIVATE ${M_LIBRARY}) endif () # sfprocess set (sfprocess_SOURCES examples/sfprocess.c) add_executable (sfprocess ${sfprocess_SOURCES}) target_link_libraries(sfprocess PUBLIC ${SNDFILE_TARGET}) # list_formats set (list_formats_SOURCES examples/list_formats.c) add_executable (list_formats ${list_formats_SOURCES}) target_link_libraries(list_formats PUBLIC ${SNDFILE_TARGET}) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(make_sine PRIVATE ${M_LIBRARY}) endif () # sndfilehandle set (sndfilehandle_SOURCES examples/sndfilehandle.cc) add_executable (sndfilehandle ${sndfilehandle_SOURCES}) target_link_libraries(sndfilehandle PUBLIC ${SNDFILE_TARGET}) set (SNDFILE_EXAMPLE_TARGETS sndfile-to-text sndfile-loopify make_sine sfprocess list_formats sndfilehandle) set_target_properties(${SNDFILE_EXAMPLE_TARGETS} PROPERTIES FOLDER Examples) endif (BUILD_EXAMPLES) # # sndfile-regtest # if (BUILD_REGTEST) set (sndfile_regtest_SOURCES regtest/sndfile-regtest.c regtest/database.c regtest/checksum.c) add_executable (sndfile-regtest ${sndfile_regtest_SOURCES}) target_include_directories(sndfile-regtest PRIVATE . ${SQLITE3_INCLUDE_DIRS}) target_link_libraries(sndfile-regtest PUBLIC ${SNDFILE_TARGET} ${SQLITE3_LIBRARIES}) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(sndfile-regtest PRIVATE ${M_LIBRARY}) endif () endif (BUILD_REGTEST) # # Installation # if (ENABLE_PACKAGE_CONFIG) if (UNIX) set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/libsndfile) elseif(WIN32) set(CMAKE_INSTALL_PACKAGEDIR cmake) endif() install (TARGETS ${SNDFILE_STATIC_TARGET} ${SNDFILE_SHARED_TARGET} ${SNDFILE_PROGRAM_TARGETS} EXPORT LibSndFileTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) include (CMakePackageConfigHelpers) write_basic_package_version_file (LibSndFileConfigVersion.cmake COMPATIBILITY SameMajorVersion) configure_package_config_file ( cmake/LibSndFileConfig.cmake.in LibSndFileConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) install(EXPORT LibSndFileTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LibSndFileConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibSndFileConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) elseif (NOT ENABLE_PACKAGE_CONFIG) install (TARGETS ${SNDFILE_STATIC_TARGET} ${SNDFILE_SHARED_TARGET} ${sdnfile_PROGRAMS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif (ENABLE_PACKAGE_CONFIG) if (Unix) set (man_MANS man/sndfile-info.1 man/sndfile-play.1 man/sndfile-convert.1 man/sndfile-cmp.1 man/sndfile-metadata-get.1 #man/sndfile-metadata-set.1 man/sndfile-concat.1 man/sndfile-interleave.1 #man/sndfile-deinterleave.1 man/sndfile-salvage.1) install (FILES ${man_MANS} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 PATTERN "*.1") endif () if (ENABLE_BOW_DOCS) set (HTML_BGCOLOUR "white") set (HTML_FGCOLOUR "black") elseif (NOT ENABLE_BOW_DOCS) set (HTML_BGCOLOUR "black") set (HTML_FGCOLOUR "white") endif () file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/doc/libsndfile.css") configure_file (doc/libsndfile.css.in doc/libsndfile.css) set (html_DATA doc/index.html doc/libsndfile.jpg "${CMAKE_CURRENT_BINARY_DIR}/doc/libsndfile.css" doc/print.css doc/api.html doc/command.html doc/bugs.html doc/sndfile_info.html doc/new_file_type.HOWTO doc/win32.html doc/FAQ.html doc/lists.html doc/embedded_files.html doc/octave.html doc/tutorial.html) install (FILES ${html_DATA} DESTINATION ${CMAKE_INSTALL_DOCDIR}) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) # # Testing # if (BUILD_TESTING) include (CTest) include(${CMAKE_MODULE_PATH}/CMakeAutoGen.cmake) enable_testing () # generate tests sources from autogen templates lsf_autogen(tests benchmark c) lsf_autogen(tests floating_point_test c) lsf_autogen(tests header_test c) lsf_autogen(tests pcm_test c) lsf_autogen(tests pipe_test c) lsf_autogen(tests rdwr_test c) lsf_autogen(tests scale_clip_test c) lsf_autogen(tests utils c h) lsf_autogen(tests write_read_test c) lsf_autogen(src test_endswap c) # utils static library add_library(test_utils STATIC tests/utils.c) target_link_libraries(test_utils PUBLIC ${SNDFILE_STATIC_TARGET}) target_include_directories(test_utils PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/tests") ### test_main set (test_main_SOURCES src/test_main.c src/test_main.h src/test_conversions.c src/test_float.c src/test_endswap.c src/test_audio_detect.c src/test_log_printf.c src/test_file_io.c src/test_ima_oki_adpcm.c src/test_strncpy_crlf.c src/test_broadcast_var.c src/test_cart_var.c src/test_binheader_writef.c src/test_nms_adpcm.c) add_executable (test_main ${test_main_SOURCES}) target_link_libraries (test_main ${SNDFILE_STATIC_TARGET}) if (MSVC) target_compile_definitions (test_main PRIVATE _USE_MATH_DEFINES) endif (MSVC) add_test (test_main test_main) ### sfversion_test set (sfversion_SOURCES tests/sfversion.c) add_executable (sfversion ${sfversion_SOURCES}) target_link_libraries (sfversion ${SNDFILE_STATIC_TARGET}) add_test (sfversion sfversion) set_tests_properties (sfversion PROPERTIES PASS_REGULAR_EXPRESSION "libsndfile-${CPACK_PACKAGE_VERSION_FULL}") ### error_test set (error_test_SOURCES tests/error_test.c) add_executable (error_test ${error_test_SOURCES}) target_link_libraries (error_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(error_test PRIVATE ${M_LIBRARY}) endif () add_test (error_test error_test) ### ulaw_test set (ulaw_test_SOURCES tests/ulaw_test.c) add_executable (ulaw_test ${ulaw_test_SOURCES}) target_link_libraries (ulaw_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(ulaw_test PRIVATE ${M_LIBRARY}) endif () add_test (ulaw_test ulaw_test) ### alaw_test set (alaw_test_SOURCES tests/alaw_test.c) add_executable (alaw_test ${alaw_test_SOURCES}) target_link_libraries (alaw_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(alaw_test PRIVATE ${M_LIBRARY}) endif () add_test (alaw_test alaw_test) ### dwvw_test set (dwvw_test_SOURCES tests/dwvw_test.c) add_executable (dwvw_test ${dwvw_test_SOURCES}) target_link_libraries (dwvw_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(dwvw_test PRIVATE ${M_LIBRARY}) endif () add_test (dwvw_test dwvw_test) ### command_test set (command_test_SOURCES tests/command_test.c) add_executable (command_test ${command_test_SOURCES}) target_link_libraries (command_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(command_test PRIVATE ${M_LIBRARY}) endif () add_test (command_test command_test all) ### floating_point_test set (floating_point_test_SOURCES tests/dft_cmp.c tests/floating_point_test.c) add_executable (floating_point_test ${floating_point_test_SOURCES}) target_link_libraries (floating_point_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) target_include_directories(floating_point_test PRIVATE tests) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(floating_point_test PRIVATE ${M_LIBRARY}) endif () add_test (floating_point_test floating_point_test) ### checksum_test set (checksum_test_SOURCES tests/checksum_test.c) add_executable (checksum_test ${checksum_test_SOURCES}) target_link_libraries (checksum_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(checksum_test PRIVATE ${M_LIBRARY}) endif () add_test (checksum_test checksum_test) ### scale_clip_test set (scale_clip_test_SOURCES tests/scale_clip_test.c) add_executable (scale_clip_test ${scale_clip_test_SOURCES}) target_link_libraries (scale_clip_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(scale_clip_test PRIVATE ${M_LIBRARY}) endif () add_test (scale_clip_test scale_clip_test) ### headerless_test set (headerless_test_SOURCES tests/headerless_test.c) add_executable (headerless_test ${headerless_test_SOURCES}) target_link_libraries (headerless_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(headerless_test PRIVATE ${M_LIBRARY}) endif () add_test (headerless_test headerless_test) ### rdwr_test set (rdwr_test_SOURCES tests/rdwr_test.c) add_executable (rdwr_test ${rdwr_test_SOURCES}) target_link_libraries (rdwr_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(rdwr_test PRIVATE ${M_LIBRARY}) endif () add_test (rdwr_test rdwr_test) ### locale_test set (locale_test_SOURCES tests/locale_test.c) add_executable (locale_test ${locale_test_SOURCES}) target_link_libraries (locale_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(locale_test PRIVATE ${M_LIBRARY}) endif () add_test (locale_test locale_test) ### win32_ordinal_test if (WIN32 AND BUILD_SHARED_LIBS) set (win32_ordinal_test_SOURCES tests/win32_ordinal_test.c) add_executable (win32_ordinal_test ${win32_ordinal_test_SOURCES}) target_link_libraries (win32_ordinal_test PRIVATE ${SNDFILE_SHARED_TARGET} test_utils) add_test (win32_ordinal_test win32_ordinal_test) endif () ### cpp_test set (cpp_test_SOURCES tests/cpp_test.cc) add_executable (cpp_test ${cpp_test_SOURCES}) target_link_libraries (cpp_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(cpp_test PRIVATE ${M_LIBRARY}) endif () add_test (cpp_test cpp_test) ### external_libs_test set (external_libs_test_SOURCES tests/external_libs_test.c) add_executable (external_libs_test ${external_libs_test_SOURCES}) target_link_libraries (external_libs_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(external_libs_test PRIVATE ${M_LIBRARY}) endif () add_test (external_libs_test external_libs_test) ### format_check_test set (format_check_test_SOURCES tests/format_check_test.c) add_executable (format_check_test ${format_check_test_SOURCES}) target_link_libraries (format_check_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(format_check_test PRIVATE ${M_LIBRARY}) endif () add_test (format_check_test format_check_test) ### channel_test set (channel_test_SOURCES tests/channel_test.c) add_executable (channel_test ${channel_test_SOURCES}) target_link_libraries (channel_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(channel_test PRIVATE ${M_LIBRARY}) endif () add_test (channel_test channel_test) ### pcm_test set (pcm_test_SOURCES tests/pcm_test.c) add_executable (pcm_test ${pcm_test_SOURCES}) target_link_libraries (pcm_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(pcm_test PRIVATE ${M_LIBRARY}) endif () add_test (pcm_test pcm_test) ### common test executables set (write_read_test_SOURCES tests/generate.c tests/write_read_test.c) add_executable (write_read_test ${write_read_test_SOURCES}) target_link_libraries (write_read_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) target_include_directories(write_read_test PRIVATE tests) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(write_read_test PRIVATE ${M_LIBRARY}) endif () set (lossy_comp_test_SOURCES tests/lossy_comp_test.c) add_executable (lossy_comp_test ${lossy_comp_test_SOURCES}) target_link_libraries (lossy_comp_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(lossy_comp_test PRIVATE ${M_LIBRARY}) endif () set (peak_chunk_test_SOURCES tests/peak_chunk_test.c) add_executable (peak_chunk_test ${peak_chunk_test_SOURCES}) target_link_libraries (peak_chunk_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(peak_chunk_test PRIVATE ${M_LIBRARY}) endif () set (header_test_SOURCES tests/header_test.c) add_executable (header_test ${header_test_SOURCES}) target_link_libraries (header_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(header_test PRIVATE ${M_LIBRARY}) endif () set (misc_test_SOURCES tests/misc_test.c) add_executable (misc_test ${misc_test_SOURCES}) target_link_libraries (misc_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(misc_test PRIVATE ${M_LIBRARY}) endif () set (string_test_SOURCES tests/string_test.c) add_executable (string_test ${string_test_SOURCES}) target_link_libraries (string_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(string_test PRIVATE ${M_LIBRARY}) endif () set (multi_file_test_SOURCES tests/multi_file_test.c) add_executable (multi_file_test ${multi_file_test_SOURCES}) target_link_libraries (multi_file_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(multi_file_test PRIVATE ${M_LIBRARY}) endif () set (aiff_rw_test_SOURCES tests/aiff_rw_test.c) add_executable (aiff_rw_test ${aiff_rw_test_SOURCES}) target_link_libraries (aiff_rw_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(aiff_rw_test PRIVATE ${M_LIBRARY}) endif () set (chunk_test_SOURCES tests/chunk_test.c) add_executable (chunk_test ${chunk_test_SOURCES}) target_link_libraries (chunk_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(chunk_test PRIVATE ${M_LIBRARY}) endif () set (long_read_write_test_SOURCES tests/long_read_write_test.c) add_executable (long_read_write_test ${long_read_write_test_SOURCES}) target_link_libraries (long_read_write_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(long_read_write_test PRIVATE ${M_LIBRARY}) endif () set (raw_test_SOURCES tests/raw_test.c) add_executable (raw_test ${raw_test_SOURCES}) target_link_libraries (raw_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(raw_test PRIVATE ${M_LIBRARY}) endif () set (compression_size_test_SOURCES tests/compression_size_test.c) add_executable (compression_size_test ${compression_size_test_SOURCES}) target_link_libraries (compression_size_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(compression_size_test PRIVATE ${M_LIBRARY}) endif () set (ogg_test_SOURCES tests/ogg_test.c) add_executable (ogg_test ${ogg_test_SOURCES}) target_link_libraries (ogg_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(ogg_test PRIVATE ${M_LIBRARY}) endif () set (stdin_test_SOURCES tests/stdin_test.c) add_executable (stdin_test ${stdin_test_SOURCES}) target_link_libraries (stdin_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(stdin_test PRIVATE ${M_LIBRARY}) endif () set_target_properties(stdin_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests") set (stdout_test_SOURCES tests/stdout_test.c) add_executable (stdout_test ${stdout_test_SOURCES}) target_link_libraries (stdout_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(stdout_test PRIVATE ${M_LIBRARY}) endif () set_target_properties(stdout_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests") set (stdio_test_SOURCES tests/stdio_test.c) add_executable (stdio_test ${stdio_test_SOURCES}) target_link_libraries (stdio_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(stdio_test PRIVATE ${M_LIBRARY}) endif () set (pipe_test_SOURCES tests/pipe_test.c) add_executable (pipe_test ${pipe_test_SOURCES}) target_link_libraries (pipe_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(pipe_test PRIVATE ${M_LIBRARY}) endif () set (virtual_io_test_SOURCES tests/virtual_io_test.c) add_executable (virtual_io_test ${virtual_io_test_SOURCES}) target_link_libraries (virtual_io_test PRIVATE ${SNDFILE_STATIC_TARGET} test_utils) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(virtual_io_test PRIVATE ${M_LIBRARY}) endif () ### g72x_test set (g72x_test_SOURCES src/G72x/g72x_test.c ${libg72x_SOURCES}) add_executable (g72x_test ${g72x_test_SOURCES}) target_link_libraries (g72x_test PRIVATE ${SNDFILE_STATIC_TARGET}) if (BUILD_SHARED_LIBS AND LIBM_REQUIRED) target_link_libraries(g72x_test PRIVATE ${M_LIBRARY}) endif () add_test (g72x_test g72x_test all) ### aiff-tests add_test (write_read_test_aiff write_read_test aiff) add_test (lossy_comp_test_aiff_ulaw lossy_comp_test aiff_ulaw) add_test (lossy_comp_test_aiff_alaw lossy_comp_test aiff_alaw) add_test (lossy_comp_test_aiff_gsm610 lossy_comp_test aiff_gsm610) add_test (peak_chunk_test_aiff peak_chunk_test aiff) add_test (header_test_aiff header_test aiff) add_test (misc_test_aiff misc_test aiff) add_test (string_test_aiff string_test aiff) add_test (multi_file_test_aiff multi_file_test aiff) add_test (aiff_rw_test aiff_rw_test) ### au-tests add_test (write_read_test_au write_read_test au) add_test (lossy_comp_test_au_ulaw lossy_comp_test au_ulaw) add_test (lossy_comp_test_au_alaw lossy_comp_test au_alaw) add_test (lossy_comp_test_au_g721 lossy_comp_test au_g721) add_test (lossy_comp_test_au_g723 lossy_comp_test au_g723) add_test (header_test_au header_test au) add_test (misc_test_au misc_test au) add_test (multi_file_test_au multi_file_test au) ### caf-tests add_test (write_read_test_caf write_read_test caf) add_test (lossy_comp_test_caf_ulaw lossy_comp_test caf_ulaw) add_test (lossy_comp_test_caf_alaw lossy_comp_test caf_alaw) add_test (header_test_caf header_test caf) add_test (peak_chunk_test_caf peak_chunk_test caf) add_test (misc_test_caf misc_test caf) add_test (chunk_test_caf chunk_test caf) add_test (string_test_caf string_test caf) add_test (long_read_write_test_alac long_read_write_test alac) # wav-tests add_test (write_read_test_wav write_read_test wav) add_test (lossy_comp_test_wav_pcm lossy_comp_test wav_pcm) add_test (lossy_comp_test_wav_ima lossy_comp_test wav_ima) add_test (lossy_comp_test_wav_msadpcm lossy_comp_test wav_msadpcm) add_test (lossy_comp_test_wav_ulaw lossy_comp_test wav_ulaw) add_test (lossy_comp_test_wav_alaw lossy_comp_test wav_alaw) add_test (lossy_comp_test_wav_gsm610 lossy_comp_test wav_gsm610) add_test (lossy_comp_test_wav_g721 lossy_comp_test wav_g721) add_test (peak_chunk_test_wav peak_chunk_test wav) add_test (header_test_wav header_test wav) add_test (misc_test_wav misc_test wav) add_test (string_test_wav string_test wav) add_test (multi_file_test_wav multi_file_test wav) add_test (chunk_test_wav chunk_test wav) ### w64-tests add_test (write_read_test_w64 write_read_test w64) add_test (lossy_comp_test_w64_ima lossy_comp_test w64_ima) add_test (lossy_comp_test_w64_msadpcm lossy_comp_test w64_msadpcm) add_test (lossy_comp_test_w64_ulaw lossy_comp_test w64_ulaw) add_test (lossy_comp_test_w64_alaw lossy_comp_test w64_alaw) add_test (lossy_comp_test_w64_gsm610 lossy_comp_test w64_gsm610) add_test (header_test_w64 header_test w64) add_test (misc_test_w64 misc_test w64) ### rf64-tests add_test (write_read_test_rf64 write_read_test rf64) add_test (header_test_rf64 header_test rf64) add_test (misc_test_rf64 misc_test rf64) add_test (string_test_rf64 string_test rf64) add_test (peak_chunk_test_rf64 peak_chunk_test rf64) add_test (chunk_test_rf64 chunk_test rf64) ### raw-tests add_test (write_read_test_raw write_read_test raw) add_test (lossy_comp_test_raw_ulaw lossy_comp_test raw_ulaw) add_test (lossy_comp_test_raw_alaw lossy_comp_test raw_alaw) add_test (lossy_comp_test_raw_gsm610 lossy_comp_test raw_gsm610) add_test (lossy_comp_test_vox_adpcm lossy_comp_test vox_adpcm) add_test (raw_test raw_test) ### paf-tests add_test (write_read_test_paf write_read_test paf) add_test (header_test_paf header_test paf) add_test (misc_test_paf misc_test paf) ### svx-tests add_test (write_read_test_svx write_read_test svx) add_test (header_test_svx header_test svx) add_test (misc_test_svx misc_test svx) ### nist-tests add_test (write_read_test_nist write_read_test nist) add_test (lossy_comp_test_nist_ulaw lossy_comp_test nist_ulaw) add_test (lossy_comp_test_nist_alaw lossy_comp_test nist_alaw) add_test (header_test_nist header_test nist) add_test (misc_test_nist misc_test nist) ### ircam-tests add_test (write_read_test_ircam write_read_test ircam) add_test (lossy_comp_test_ircam_ulaw lossy_comp_test ircam_ulaw) add_test (lossy_comp_test_ircam_alaw lossy_comp_test ircam_alaw) add_test (header_test_ircam header_test ircam) add_test (misc_test_ircam misc_test ircam) ### voc-tests add_test (write_read_test_voc write_read_test voc) add_test (lossy_comp_test_voc_ulaw lossy_comp_test voc_ulaw) add_test (lossy_comp_test_voc_alaw lossy_comp_test voc_alaw) add_test (header_test_voc header_test voc) add_test (misc_test_voc misc_test voc) ### mat4-tests add_test (write_read_test_mat4 write_read_test mat4) add_test (header_test_mat4 header_test mat4) add_test (misc_test_mat4 misc_test mat4) ### mat5-tests add_test (write_read_test_mat5 write_read_test mat5) add_test (header_test_mat5 header_test mat5) add_test (misc_test_mat5 misc_test mat5) ### pvf-tests add_test (write_read_test_pvf write_read_test pvf) add_test (header_test_pvf header_test pvf) add_test (misc_test_pvf misc_test pvf) ### xi-tests add_test (lossy_comp_test_xi_dpcm lossy_comp_test xi_dpcm) ### htk-tests add_test (write_read_test_htk write_read_test htk) add_test (header_test_htk header_test htk) add_test (misc_test_htk misc_test htk) ### avr-tests add_test (write_read_test_avr write_read_test avr) add_test (header_test_avr header_test avr) add_test (misc_test_avr misc_test avr) ### sds-tests add_test (write_read_test_sds write_read_test sds) add_test (header_test_sds header_test sds) add_test (misc_test_sds misc_test sds) # sd2-tests add_test (write_read_test_sd2 write_read_test sd2) ### wve-tests add_test (lossy_comp_test_wve lossy_comp_test wve) ### mpc2k-tests add_test (write_read_test_mpc2k write_read_test mpc2k) add_test (header_test_mpc2k header_test mpc2k) add_test (misc_test_mpc2k misc_test mpc2k) ### flac-tests add_test (write_read_test_flac write_read_test flac) add_test (compression_size_test_flac compression_size_test flac) add_test (string_test_flac string_test flac) ### vorbis-tests add_test (ogg_test ogg_test) add_test (compression_size_test_vorbis compression_size_test vorbis) add_test (lossy_comp_test_ogg_vorbis lossy_comp_test ogg_vorbis) add_test (string_test_ogg string_test ogg) add_test (misc_test_ogg misc_test ogg) ### io-tests add_test (stdio_test stdio_test) add_test (pipe_test pipe_test) add_test (virtual_io_test virtual_io_test) set (SNDFILE_TEST_TARGETS test_utils test_main sfversion error_test ulaw_test alaw_test dwvw_test command_test floating_point_test checksum_test scale_clip_test headerless_test rdwr_test locale_test cpp_test external_libs_test format_check_test channel_test pcm_test write_read_test lossy_comp_test peak_chunk_test header_test misc_test string_test multi_file_test aiff_rw_test chunk_test long_read_write_test raw_test compression_size_test ogg_test stdin_test stdout_test stdio_test pipe_test virtual_io_test g72x_test) if (WIN32 AND BUILD_SHARED_LIBS) list (APPEND SNDFILE_TEST_TARGETS win32_ordinal_test) endif () set_target_properties(${SNDFILE_TEST_TARGETS} PROPERTIES FOLDER Tests) endif (BUILD_TESTING)