1cmake_minimum_required (VERSION 3.1..3.18) 2 3# MSVC runtime library flags are selected by an abstraction, CMake >= 3.15 4# This policy still need to be set even with cmake_minimum_required() command above. 5if (POLICY CMP0091) 6 if ((DEFINED ENABLE_STATIC_RUNTIME) AND (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)) 7 message (FATAL_ERROR "Both ENABLE_STATIC_RUNTIME and CMAKE_MSVC_RUNTIME_LIBRARY are set.") 8 return () 9 endif () 10 11 if (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) 12 cmake_policy (SET CMP0091 NEW) 13 else () 14 cmake_policy (SET CMP0091 OLD) 15 endif () 16endif () 17 18project(libsndfile VERSION 1.0.31) 19 20# 21# Variables 22# 23 24set (CMAKE_C_STANDARD 99) 25set (CMAKE_C_STANDARD_REQUIRED TRUE) 26set_property(GLOBAL PROPERTY USE_FOLDERS ON) 27 28set (PACKAGE_NAME ${PROJECT_NAME}) 29set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) 30set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) 31set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) 32set (CPACK_PACKAGE_VERSION_STAGE "") 33set (CPACK_PACKAGE_VERSION_FULL "${PROJECT_VERSION}${CPACK_PACKAGE_VERSION_STAGE}") 34 35# 36# System-wide includes 37# 38 39include (GNUInstallDirs) 40include (FeatureSummary) 41include (CMakeDependentOption) 42include (CTest) 43include (CheckCCompilerFlag) 44 45# 46# Options 47# 48 49option (BUILD_SHARED_LIBS "Build shared libraries" OFF) 50if (BUILD_SHARED_LIBS AND BUILD_TESTING) 51 set (BUILD_TESTING OFF) 52 message ("Build testing required static libraries. To prevent build errors BUILD_TESTING disabled.") 53endif () 54option (BUILD_PROGRAMS "Build programs" ON) 55option (BUILD_EXAMPLES "Build examples" ON) 56option (ENABLE_CPACK "Enable CPack support" ON) 57option (ENABLE_EXPERIMENTAL "Enable experimental code" OFF) 58option (ENABLE_BOW_DOCS "Enable black-on-white html docs" OFF) 59if (MSVC AND (DEFINED ENABLE_STATIC_RUNTIME)) 60 option (ENABLE_STATIC_RUNTIME "Enable static runtime" ${ENABLE_STATIC_RUNTIME}) 61elseif (MINGW) 62 option (ENABLE_STATIC_RUNTIME "Enable static runtime" OFF) 63endif () 64option (ENABLE_PACKAGE_CONFIG "Generate and install package config file" ON) 65option (INSTALL_PKGCONFIG_MODULE "Generate and install pkg-config module" ON) 66 67list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 68if (CMAKE_VERSION VERSION_LESS 3.14) 69 list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/sqlite") 70endif () 71 72# 73# Setup definitions 74# 75 76include(SndFileChecks) 77 78 79cmake_dependent_option (BUILD_REGTEST "Build regtest" ON "SQLITE3_FOUND" OFF) 80cmake_dependent_option (ENABLE_EXTERNAL_LIBS "Enable FLAC, Vorbis, and Opus codecs" ON "Vorbis_FOUND;FLAC_FOUND;OPUS_FOUND" OFF) 81cmake_dependent_option (ENABLE_CPU_CLIP "Enable tricky cpu specific clipper" ON "CPU_CLIPS_POSITIVE;CPU_CLIPS_NEGATIVE" OFF) 82if (NOT ENABLE_CPU_CLIP) 83 set (CPU_CLIPS_POSITIVE FALSE) 84 set (CPU_CLIPS_NEGATIVE FALSE) 85endif () 86cmake_dependent_option (ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise" OFF "WIN32;BUILD_SHARED_LIBS" OFF) 87cmake_dependent_option (INSTALL_MANPAGES "Install man pages for programs" ON "BUILD_PROGRAMS" OFF) 88 89if (NOT MSVC) 90 if (CPU_IS_X86) 91 check_c_compiler_flag (-msse2 HAVE_MSSE2_COMPILER_FLAG) 92 if (HAVE_MSSE2_COMPILER_FLAG) 93 cmake_dependent_option (ENABLE_SSE2 "Add SSE2 compiler flag" ON "HAVE_MSSE2_COMPILER_FLAG" OFF) 94 endif () 95 endif () 96endif () 97if (ENABLE_SSE2) 98 add_compile_options (-msse2) 99endif () 100 101set (HAVE_EXTERNAL_XIPH_LIBS ${ENABLE_EXTERNAL_LIBS}) 102set (HAVE_SQLITE3 ${BUILD_REGTEST}) 103set (HAVE_ALSA_ASOUNDLIB_H ${ALSA_FOUND}) 104set (HAVE_SNDIO_H ${SNDIO_FOUND}) 105 106set (ENABLE_EXPERIMENTAL_CODE ${ENABLE_EXPERIMENTAL}) 107set (HAVE_SPEEX ${ENABLE_EXPERIMENTAL}) 108set (HAVE_OPUS ${ENABLE_EXPERIMENTAL}) 109 110add_feature_info (BUILD_SHARED_LIBS BUILD_SHARED_LIBS "build shared libraries") 111add_feature_info (ENABLE_EXTERNAL_LIBS ENABLE_EXTERNAL_LIBS "enable FLAC, Vorbis, and Opus codecs") 112add_feature_info (ENABLE_EXPERIMENTAL ENABLE_EXPERIMENTAL "enable experimental code") 113add_feature_info (BUILD_TESTING BUILD_TESTING "build tests") 114add_feature_info (BUILD_REGTEST BUILD_REGTEST "build regtest") 115add_feature_info (ENABLE_CPACK ENABLE_CPACK "enable CPack support") 116add_feature_info (ENABLE_CPU_CLIP ENABLE_CPU_CLIP "Enable tricky cpu specific clipper") 117add_feature_info (ENABLE_BOW_DOCS ENABLE_BOW_DOCS "enable black-on-white html docs") 118add_feature_info (ENABLE_PACKAGE_CONFIG ENABLE_PACKAGE_CONFIG "generate and install package config file") 119add_feature_info (INSTALL_PKGCONFIG_MODULE INSTALL_PKGCONFIG_MODULE "generate and install pkg-config module") 120add_feature_info (INSTALL_MANPAGES INSTALL_MANPAGES "install man pages for programs") 121if (WIN32 AND BUILD_SHARED_LIBS) 122 add_feature_info (ENABLE_COMPATIBLE_LIBSNDFILE_NAME ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise") 123endif () 124 125if (HAVE_MSSE2_COMPILER_FLAG) 126 add_feature_info (ENABLE_SSE2 ENABLE_SSE2 "add SSE2 compiler flag") 127endif () 128 129 130 131 132set_package_properties (Ogg PROPERTIES 133 TYPE RECOMMENDED 134 URL "www.xiph.org/ogg/" 135 DESCRIPTION "library for manipulating ogg bitstreams" 136 PURPOSE "Required to enable Vorbis, Speex, and Opus support" 137 ) 138set_package_properties (Vorbis PROPERTIES 139 TYPE RECOMMENDED 140 URL "www.vorbis.com/" 141 DESCRIPTION "open source lossy audio codec" 142 PURPOSE "Enables Vorbis support" 143 ) 144set_package_properties (FLAC PROPERTIES 145 TYPE RECOMMENDED 146 URL "www.xiph.org/flac/" 147 DESCRIPTION "Free Lossless Audio Codec Library" 148 PURPOSE "Enables FLAC support" 149 ) 150set_package_properties(Opus PROPERTIES 151 TYPE RECOMMENDED 152 URL "www.opus-codec.org/" 153 DESCRIPTION "Standardized open source low-latency fullband codec" 154 PURPOSE "Enables experimental Opus support" 155 ) 156set_package_properties(Speex PROPERTIES TYPE OPTIONAL 157 URL "www.speex.org/" 158 DESCRIPTION "an audio codec tuned for speech" 159 PURPOSE "Enables experemental Speex support" 160 ) 161set_package_properties (SQLite3 PROPERTIES 162 TYPE OPTIONAL 163 URL "www.sqlite.org/" 164 DESCRIPTION "light weight SQL database engine." 165 PURPOSE "Enables regtest" 166 ) 167if (BUILD_SHARED_LIBS) 168 set_package_properties (PythonInterp PROPERTIES 169 TYPE REQUIRED 170 URL "www.python.org/" 171 DESCRIPTION "Python is a widely used high-level programming language." 172 PURPOSE "Required to build shared libraries" 173 ) 174endif() 175 176feature_summary (WHAT ALL) 177 178# 179# Setup configuration 180# 181 182configure_file (src/config.h.cmake src/config.h) 183 184configure_file (include/sndfile.h.in include/sndfile.h) 185 186if (INSTALL_PKGCONFIG_MODULE) 187 188 set (prefix ${CMAKE_INSTALL_PREFIX}) 189 set (exec_prefix "\$\{prefix\}") 190 set (libdir "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}") 191 set (includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}") 192 set (VERSION ${PROJECT_VERSION}) 193 if (ENABLE_EXTERNAL_LIBS) 194 set (EXTERNAL_XIPH_REQUIRE "flac ogg vorbis vorbisenc opus") 195 if (ENABLE_EXPERIMENTAL) 196 set (EXTERNAL_XIPH_REQUIRE "${EXTERNAL_XIPH_REQUIRE} speex") 197 endif () 198 endif () 199 200 configure_file (sndfile.pc.in sndfile.pc @ONLY) 201 202endif () 203 204# 205# libsndfile 206# 207 208# Public libsndfile headers 209set (sndfile_HDRS 210 include/sndfile.hh 211 ${CMAKE_CURRENT_BINARY_DIR}/include/sndfile.h 212 ) 213 214# 215# libsndfile static library 216# 217 218add_library (sndfile 219 src/sfconfig.h 220 src/sfendian.h 221 src/sf_unistd.h 222 src/common.h 223 src/common.c 224 src/file_io.c 225 src/command.c 226 src/pcm.c 227 src/ulaw.c 228 src/alaw.c 229 src/float32.c 230 src/double64.c 231 src/ima_adpcm.c 232 src/ms_adpcm.c 233 src/gsm610.c 234 src/dwvw.c 235 src/vox_adpcm.c 236 src/interleave.c 237 src/strings.c 238 src/dither.c 239 src/cart.c 240 src/broadcast.c 241 src/audio_detect.c 242 src/ima_oki_adpcm.c 243 src/ima_oki_adpcm.h 244 src/alac.c 245 src/chunk.c 246 src/ogg.h 247 src/ogg.c 248 src/chanmap.h 249 src/chanmap.c 250 src/id3.c 251 $<$<BOOL:${WIN32}>:src/windows.c> 252 src/sndfile.c 253 src/aiff.c 254 src/au.c 255 src/avr.c 256 src/caf.c 257 src/dwd.c 258 src/flac.c 259 src/g72x.c 260 src/htk.c 261 src/ircam.c 262 src/macos.c 263 src/mat4.c 264 src/mat5.c 265 src/nist.c 266 src/paf.c 267 src/pvf.c 268 src/raw.c 269 src/rx2.c 270 src/sd2.c 271 src/sds.c 272 src/svx.c 273 src/txw.c 274 src/voc.c 275 src/wve.c 276 src/w64.c 277 src/wavlike.h 278 src/wavlike.c 279 src/wav.c 280 src/xi.c 281 src/mpc2k.c 282 src/rf64.c 283 src/ogg_vorbis.c 284 src/ogg_speex.c 285 src/ogg_pcm.c 286 src/ogg_opus.c 287 src/ogg_vcomment.c 288 src/nms_adpcm.c 289 src/GSM610/config.h 290 src/GSM610/gsm.h 291 src/GSM610/gsm610_priv.h 292 src/GSM610/add.c 293 src/GSM610/code.c 294 src/GSM610/decode.c 295 src/GSM610/gsm_create.c 296 src/GSM610/gsm_decode.c 297 src/GSM610/gsm_destroy.c 298 src/GSM610/gsm_encode.c 299 src/GSM610/gsm_option.c 300 src/GSM610/long_term.c 301 src/GSM610/lpc.c 302 src/GSM610/preprocess.c 303 src/GSM610/rpe.c 304 src/GSM610/short_term.c 305 src/GSM610/table.c 306 src/G72x/g72x.h 307 src/G72x/g72x_priv.h 308 src/G72x/g721.c 309 src/G72x/g723_16.c 310 src/G72x/g723_24.c 311 src/G72x/g723_40.c 312 src/G72x/g72x.c 313 src/ALAC/ALACAudioTypes.h 314 src/ALAC/ALACBitUtilities.h 315 src/ALAC/EndianPortable.h 316 src/ALAC/aglib.h 317 src/ALAC/dplib.h 318 src/ALAC/matrixlib.h 319 src/ALAC/alac_codec.h 320 src/ALAC/shift.h 321 src/ALAC/ALACBitUtilities.c 322 src/ALAC/ag_dec.c 323 src/ALAC/ag_enc.c 324 src/ALAC/dp_dec.c 325 src/ALAC/dp_enc.c 326 src/ALAC/matrix_dec.c 327 src/ALAC/matrix_enc.c 328 src/ALAC/alac_decoder.c 329 src/ALAC/alac_encoder.c 330 ${sndfile_HDRS} 331 ${CMAKE_CURRENT_BINARY_DIR}/src/config.h 332 ) 333 334add_library (SndFile::sndfile ALIAS sndfile) 335 336target_include_directories (sndfile 337 PUBLIC 338 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> 339 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include> 340 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> 341 PRIVATE 342 src 343 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src> 344 ) 345target_link_libraries (sndfile 346 PRIVATE 347 $<$<BOOL:${LIBM_REQUIRED}>:m> 348 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Vorbis::vorbisenc> 349 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:FLAC::FLAC> 350 $<$<AND:$<BOOL:${ENABLE_EXPERIMENTAL}>,$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>,$<BOOL:${HAVE_SPEEX}>>:Speex::Speex> 351 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Opus::opus> 352 ) 353set_target_properties (sndfile PROPERTIES 354 PUBLIC_HEADER "${sndfile_HDRS}" 355 ) 356 357if (ENABLE_COMPATIBLE_LIBSNDFILE_NAME) 358 if (MINGW OR CYGWIN) 359 set_target_properties (sndfile PROPERTIES 360 RUNTIME_OUTPUT_NAME "sndfile-1" 361 ) 362 else () 363 set_target_properties (sndfile PROPERTIES 364 RUNTIME_OUTPUT_NAME "libsndfile-1" 365 ) 366 endif () 367endif () 368 369if (BUILD_SHARED_LIBS) 370 371 if (WIN32) 372 set (VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}) 373 set (GEN_TOOL cmake) 374 375 set (WIN_RC_VERSION "${CPACK_PACKAGE_VERSION_MAJOR},${CPACK_PACKAGE_VERSION_MINOR},${CPACK_PACKAGE_VERSION_PATCH}") 376 set (CLEAN_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") 377 set (PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) 378 379 configure_file (src/version-metadata.rc.in src/version-metadata.rc @ONLY) 380 target_sources (sndfile PRIVATE ${PROJECT_BINARY_DIR}/src/version-metadata.rc) 381 endif () 382 383 set_target_properties (sndfile PROPERTIES 384 SOVERSION ${PROJECT_VERSION_MAJOR} 385 VERSION ${PROJECT_VERSION} 386 ) 387 388 # Symbol files generation 389 390 if (WIN32) 391 set (SYMBOL_FILENAME "sndfile.def") 392 set (SYMBOL_OS "win32") 393 elseif ((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR (CMAKE_SYSTEM_NAME MATCHES "Rhapsody")) 394 set (SYMBOL_FILENAME "Symbols.darwin") 395 set (SYMBOL_OS "darwin") 396 elseif (CMAKE_SYSTEM_NAME MATCHES "OS2") 397 set (SYMBOL_FILENAME "Symbols.os2") 398 set (SYMBOL_OS "os2") 399 elseif (UNIX) 400 set (SYMBOL_FILENAME "Symbols.gnu-binutils") 401 set (SYMBOL_OS "linux") 402 endif () 403 404 if (DEFINED SYMBOL_OS) 405 add_custom_command ( 406 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME} 407 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/create_symbols_file.py ${SYMBOL_OS} ${PROJECT_VERSION} > ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME} 408 COMMENT "Generating ${SYMBOL_FILENAME}..." 409 ) 410 411 add_custom_target (GENFILES DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}) 412 if (SYMBOL_OS MATCHES "win32") 413 target_sources (sndfile 414 PRIVATE 415 ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME} 416 ) 417 elseif (SYMBOL_OS MATCHES "darwin") 418 add_dependencies (sndfile GENFILES) 419 if (CMAKE_VERSION VERSION_LESS 3.13) 420 set_property (TARGET sndfile APPEND_STRING PROPERTY 421 LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}" 422 ) 423 else () 424 target_link_options (sndfile PRIVATE "LINKER:-exported_symbols_list,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") 425 endif() 426 elseif (SYMBOL_OS MATCHES "os") 427 add_dependencies (sndfile GENFILES) 428 if (CMAKE_VERSION VERSION_LESS 3.13) 429 set_property (TARGET sndfile APPEND_STRING PROPERTY 430 LINK_FLAGS "-Wl,-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}" 431 ) 432 else () 433 target_link_options (sndfile PRIVATE "LINKER:-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") 434 endif() 435 elseif (UNIX) 436 add_dependencies (sndfile GENFILES) 437 if (CMAKE_VERSION VERSION_LESS 3.13) 438 set_property (TARGET sndfile APPEND_STRING PROPERTY 439 LINK_FLAGS "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}" 440 ) 441 else () 442 target_link_options (sndfile PRIVATE "LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}") 443 endif() 444 endif() 445 endif() 446 447endif () 448 449# 450# Programs 451# 452 453if (BUILD_PROGRAMS) 454 455# sndfile-info 456 457 add_executable (sndfile-info 458 programs/sndfile-info.c 459 programs/common.c 460 programs/common.h 461 ) 462 target_link_libraries (sndfile-info 463 PRIVATE 464 sndfile 465 $<$<BOOL:${LIBM_REQUIRED}>:m> 466 ) 467 468# sndfile-play 469 470 add_executable (sndfile-play 471 $<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c> 472 $<$<NOT:$<BOOL:${BEOS}>>:programs/common.c> 473 $<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c> 474 $<$<BOOL:${BEOS}>:programs/sndfile-play-beos.cpp> 475 ) 476 target_include_directories (sndfile-play 477 PRIVATE 478 src 479 ${CMAKE_CURRENT_BINARY_DIR}/src 480 ) 481 target_link_libraries (sndfile-play PRIVATE $<$<BOOL:${LIBM_REQUIRED}>:m>) 482 target_link_libraries (sndfile-play PRIVATE sndfile) 483 if (WIN32) 484 target_link_libraries(sndfile-play PRIVATE winmm) 485 # Maybe ALSA & Sndio are present in BeOS. They are not required 486 # so skip them anyway. 487 elseif ((NOT BEOS) AND ALSA_FOUND) 488 target_include_directories (sndfile-play PRIVATE ${ALSA_INCLUDE_DIRS}) 489 target_link_libraries (sndfile-play PRIVATE ${ALSA_LIBRARIES}) 490 elseif (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 491 target_link_libraries (sndfile-play PRIVATE Sndio::Sndio) 492 endif () 493 494# sndfile-convert 495 496 add_executable (sndfile-convert 497 programs/sndfile-convert.c 498 programs/common.c 499 programs/common.h 500 ) 501 target_link_libraries (sndfile-convert PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 502 503# sndfile-cmp 504 505 add_executable (sndfile-cmp 506 programs/sndfile-cmp.c 507 programs/common.c 508 programs/common.h 509 ) 510 target_include_directories (sndfile-cmp 511 PUBLIC 512 src 513 ${CMAKE_CURRENT_BINARY_DIR}/src 514 ${CMAKE_CURRENT_BINARY_DIR}/tests 515 ) 516 target_link_libraries (sndfile-cmp PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 517 518# sndfile-metadata-set 519 520 add_executable (sndfile-metadata-set 521 programs/sndfile-metadata-set.c 522 programs/common.c 523 programs/common.h 524 ) 525 target_include_directories (sndfile-metadata-set 526 PUBLIC 527 src 528 ${CMAKE_CURRENT_BINARY_DIR}/src 529 ${CMAKE_CURRENT_BINARY_DIR}/tests 530 ) 531 target_link_libraries (sndfile-metadata-set PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 532 533# sndfile-metadata-get 534 535 add_executable (sndfile-metadata-get 536 programs/sndfile-metadata-get.c 537 programs/common.c 538 programs/common.h 539 ) 540 target_include_directories (sndfile-metadata-get 541 PUBLIC 542 src 543 ${CMAKE_CURRENT_BINARY_DIR}/src 544 ${CMAKE_CURRENT_BINARY_DIR}/tests 545 ) 546 target_link_libraries (sndfile-metadata-get PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 547 548# sndfile-interleave 549 550 add_executable (sndfile-interleave 551 programs/sndfile-interleave.c 552 programs/common.c 553 programs/common.h 554 ) 555 target_link_libraries (sndfile-interleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 556 557# sndfile-deinterleave 558 559 add_executable (sndfile-deinterleave 560 programs/sndfile-deinterleave.c 561 programs/common.c 562 programs/common.h 563 ) 564 target_link_libraries (sndfile-deinterleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 565 566# sndfile-concat 567 568 add_executable (sndfile-concat 569 programs/sndfile-concat.c 570 programs/common.c 571 programs/common.h 572 ) 573 target_link_libraries (sndfile-concat PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 574 575# sndfile-salvage 576 577 add_executable (sndfile-salvage 578 programs/sndfile-salvage.c 579 programs/common.c 580 programs/common.h 581 ) 582 target_include_directories (sndfile-salvage 583 PUBLIC 584 src 585 ${CMAKE_CURRENT_BINARY_DIR}/src 586 ${CMAKE_CURRENT_BINARY_DIR}/tests 587 ) 588 target_link_libraries (sndfile-salvage PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>) 589 590 set (SNDFILE_PROGRAM_TARGETS 591 sndfile-info 592 sndfile-play 593 sndfile-convert 594 sndfile-cmp 595 sndfile-metadata-set 596 sndfile-metadata-get 597 sndfile-interleave 598 sndfile-deinterleave 599 sndfile-concat 600 sndfile-salvage 601 ) 602 603 set_target_properties(${SNDFILE_PROGRAM_TARGETS} PROPERTIES FOLDER Programs) 604 605endif () 606 607# 608# Examples 609# 610 611if (BUILD_EXAMPLES) 612 613# sndfile-to-text 614 615 add_executable (sndfile-to-text examples/sndfile-to-text.c) 616 target_link_libraries (sndfile-to-text PRIVATE sndfile) 617 618# sndfile-loopify 619 620 add_executable (sndfile-loopify examples/sndfile-loopify.c) 621 target_link_libraries (sndfile-loopify PRIVATE sndfile) 622 623# make_sine 624 625 add_executable (make_sine examples/make_sine.c) 626 target_link_libraries (make_sine 627 PRIVATE 628 sndfile 629 $<$<BOOL:${LIBM_REQUIRED}>:m> 630 ) 631 632# sfprocess 633 634 add_executable (sfprocess examples/sfprocess.c) 635 target_link_libraries (sfprocess 636 PRIVATE 637 sndfile 638 $<$<BOOL:${LIBM_REQUIRED}>:m> 639 ) 640 641# list_formats 642 643 add_executable (list_formats examples/list_formats.c) 644 target_link_libraries (list_formats 645 PRIVATE 646 sndfile 647 $<$<BOOL:${LIBM_REQUIRED}>:m> 648 ) 649 650# sndfilehandle 651 652 add_executable (sndfilehandle examples/sndfilehandle.cc) 653 target_link_libraries (sndfilehandle PUBLIC sndfile) 654 655 set (SNDFILE_EXAMPLE_TARGETS 656 sndfile-to-text 657 sndfile-loopify 658 make_sine 659 sfprocess 660 list_formats 661 sndfilehandle 662 ) 663 664 set_target_properties(${SNDFILE_EXAMPLE_TARGETS} PROPERTIES FOLDER Examples) 665 666 667endif () 668 669# 670# sndfile-regtest 671# 672 673if (BUILD_REGTEST) 674 675 add_executable (sndfile-regtest 676 regtest/sndfile-regtest.c 677 regtest/database.c 678 regtest/checksum.c 679 ) 680 target_include_directories (sndfile-regtest 681 PUBLIC 682 src 683 ${CMAKE_CURRENT_BINARY_DIR}/src 684 ${CMAKE_CURRENT_BINARY_DIR}/tests 685 ) 686 target_link_libraries(sndfile-regtest 687 PRIVATE 688 sndfile 689 SQLite::SQLite3 690 $<$<BOOL:${LIBM_REQUIRED}>:m> 691 ) 692 693endif () 694 695# 696# Installation 697# 698 699if (ENABLE_PACKAGE_CONFIG) 700 701 if (WIN32 AND (NOT MINGW) AND (NOT CYGWIN)) 702 set (CMAKE_INSTALL_PACKAGEDIR cmake) 703 else () 704 set (CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/SndFile) 705 endif() 706 707 install (TARGETS ${SNDFILE_PROGRAM_TARGETS} 708 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 709 ) 710 711 install (TARGETS sndfile 712 EXPORT SndFileTargets 713 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 714 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 715 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 716 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 717 ) 718 719 include (CMakePackageConfigHelpers) 720 721 if (ENABLE_EXTERNAL_LIBS) 722 set (SndFile_WITH_EXTERNAL_LIBS 1) 723 else () 724 set (SndFile_WITH_EXTERNAL_LIBS 0) 725 endif () 726 727 set (INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) 728 configure_package_config_file(cmake/SndFileConfig.cmake.in SndFileConfig.cmake 729 INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} 730 PATH_VARS INCLUDE_INSTALL_DIR 731 ) 732 write_basic_package_version_file (SndFileConfigVersion.cmake COMPATIBILITY SameMajorVersion) 733 734 install(EXPORT SndFileTargets 735 NAMESPACE SndFile:: 736 DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} 737 ) 738 install( 739 FILES 740 ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfig.cmake 741 ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfigVersion.cmake 742 DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} 743 ) 744 745else () 746 747 install (TARGETS sndfile ${sdnfile_PROGRAMS} 748 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 749 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 750 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 751 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 752 753endif () 754 755if (INSTALL_MANPAGES) 756 757 set (man_MANS 758 man/sndfile-info.1 759 man/sndfile-play.1 760 man/sndfile-convert.1 761 man/sndfile-cmp.1 762 man/sndfile-metadata-get.1 763 man/sndfile-concat.1 764 man/sndfile-interleave.1 765 man/sndfile-salvage.1 766 ) 767 install (FILES ${man_MANS} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 768 install (FILES man/sndfile-metadata-get.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-metadata-set.1) 769 install (FILES man/sndfile-interleave.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-deinterleave.1) 770endif () 771 772if (ENABLE_BOW_DOCS) 773 set (HTML_BGCOLOUR "white") 774 set (HTML_FGCOLOUR "black") 775else () 776 set (HTML_BGCOLOUR "black") 777 set (HTML_FGCOLOUR "white") 778endif () 779set (dist_doc_DATA 780 docs/index.md 781 docs/libsndfile.jpg 782 docs/libsndfile.css 783 docs/print.css 784 docs/api.md 785 docs/command.md 786 docs/bugs.md 787 docs/formats.md 788 docs/sndfile_info.md 789 docs/new_file_type_howto.md 790 docs/win32.md 791 docs/FAQ.md 792 docs/lists.md 793 docs/embedded_files.md 794 docs/octave.md 795 docs/tutorial.md 796 ) 797install (FILES ${dist_doc_DATA} DESTINATION ${CMAKE_INSTALL_DOCDIR}) 798 799if (INSTALL_PKGCONFIG_MODULE) 800 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) 801endif () 802 803# 804# Testing 805# 806 807if (BUILD_TESTING) 808 809 enable_testing () 810 811 include (CMakeAutoGen) 812 813 # generate tests sources from autogen templates 814 lsf_autogen (tests benchmark c) 815 lsf_autogen (tests floating_point_test c) 816 lsf_autogen (tests header_test c) 817 lsf_autogen (tests pcm_test c) 818 lsf_autogen (tests pipe_test c) 819 lsf_autogen (tests rdwr_test c) 820 lsf_autogen (tests scale_clip_test c) 821 lsf_autogen (tests utils c h) 822 lsf_autogen (tests write_read_test c) 823 lsf_autogen (src test_endswap c) 824 825 # utils static library 826 add_library(test_utils STATIC tests/utils.c) 827 target_include_directories (test_utils 828 PUBLIC 829 src 830 ${CMAKE_CURRENT_BINARY_DIR}/src 831 ${CMAKE_CURRENT_BINARY_DIR}/tests 832 ) 833 target_link_libraries(test_utils PRIVATE sndfile) 834 835 ### test_main 836 837 add_executable (test_main 838 src/test_main.c 839 src/test_main.h 840 src/test_conversions.c 841 src/test_float.c 842 src/test_endswap.c 843 src/test_audio_detect.c 844 src/test_log_printf.c 845 src/test_file_io.c 846 src/test_ima_oki_adpcm.c 847 src/test_strncpy_crlf.c 848 src/test_broadcast_var.c 849 src/test_cart_var.c 850 src/test_binheader_writef.c 851 src/test_nms_adpcm.c 852 ) 853 target_include_directories (test_main 854 PUBLIC 855 src 856 ${CMAKE_CURRENT_BINARY_DIR}/src 857 ${CMAKE_CURRENT_BINARY_DIR}/tests 858 ) 859 target_link_libraries (test_main PRIVATE sndfile) 860 if (MSVC) 861 target_compile_definitions (test_main PRIVATE _USE_MATH_DEFINES) 862 endif () 863 add_test (test_main test_main) 864 865 ### sfversion_test 866 867 add_executable (sfversion tests/sfversion.c) 868 target_include_directories (sfversion 869 PRIVATE 870 src 871 ${CMAKE_CURRENT_BINARY_DIR}/src 872 ) 873 target_link_libraries (sfversion sndfile) 874 add_test (sfversion sfversion) 875 set_tests_properties (sfversion PROPERTIES 876 PASS_REGULAR_EXPRESSION "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_FULL}" 877 ) 878 879 ### error_test 880 881 add_executable (error_test tests/error_test.c) 882 target_link_libraries (error_test 883 PRIVATE 884 sndfile 885 test_utils 886 $<$<BOOL:${LIBM_REQUIRED}>:m> 887 ) 888 add_test (error_test error_test) 889 890 ### ulaw_test 891 add_executable (ulaw_test tests/ulaw_test.c) 892 target_link_libraries (ulaw_test 893 PRIVATE 894 sndfile 895 test_utils 896 $<$<BOOL:${LIBM_REQUIRED}>:m> 897 ) 898 add_test (ulaw_test ulaw_test) 899 900 ### alaw_test 901 add_executable (alaw_test tests/alaw_test.c) 902 target_link_libraries (alaw_test 903 PRIVATE 904 sndfile 905 test_utils 906 $<$<BOOL:${LIBM_REQUIRED}>:m> 907 ) 908 add_test (alaw_test alaw_test) 909 910 ### dwvw_test 911 912 add_executable (dwvw_test tests/dwvw_test.c) 913 target_link_libraries (dwvw_test 914 PRIVATE 915 sndfile 916 test_utils 917 $<$<BOOL:${LIBM_REQUIRED}>:m> 918 ) 919 add_test (dwvw_test dwvw_test) 920 921 ### command_test 922 923 add_executable (command_test tests/command_test.c) 924 target_link_libraries (command_test 925 PRIVATE 926 sndfile 927 test_utils 928 $<$<BOOL:${LIBM_REQUIRED}>:m> 929 ) 930 add_test (command_test command_test all) 931 932 ### floating_point_test 933 934 add_executable (floating_point_test 935 tests/dft_cmp.c 936 tests/floating_point_test.c 937 ) 938 target_link_libraries (floating_point_test 939 PRIVATE 940 sndfile 941 test_utils 942 $<$<BOOL:${LIBM_REQUIRED}>:m> 943 ) 944 target_include_directories (floating_point_test PRIVATE tests) 945 add_test (floating_point_test floating_point_test) 946 947 ### checksum_test 948 949 add_executable (checksum_test tests/checksum_test.c) 950 target_link_libraries (checksum_test 951 PRIVATE 952 sndfile 953 test_utils 954 $<$<BOOL:${LIBM_REQUIRED}>:m> 955 ) 956 add_test (checksum_test checksum_test) 957 958 ### scale_clip_test 959 960 add_executable (scale_clip_test tests/scale_clip_test.c) 961 target_link_libraries (scale_clip_test 962 PRIVATE 963 sndfile 964 test_utils 965 $<$<BOOL:${LIBM_REQUIRED}>:m> 966 ) 967 add_test (scale_clip_test scale_clip_test) 968 969 ### headerless_test 970 971 add_executable (headerless_test tests/headerless_test.c) 972 target_link_libraries (headerless_test 973 PRIVATE 974 sndfile 975 test_utils 976 $<$<BOOL:${LIBM_REQUIRED}>:m> 977 ) 978 add_test (headerless_test headerless_test) 979 980 ### rdwr_test 981 982 add_executable (rdwr_test tests/rdwr_test.c) 983 target_link_libraries (rdwr_test 984 PRIVATE 985 sndfile 986 test_utils 987 $<$<BOOL:${LIBM_REQUIRED}>:m> 988 ) 989 add_test (rdwr_test rdwr_test) 990 991 ### locale_test 992 993 add_executable (locale_test tests/locale_test.c) 994 target_link_libraries (locale_test 995 PRIVATE 996 sndfile 997 test_utils 998 $<$<BOOL:${LIBM_REQUIRED}>:m> 999 ) 1000 add_test (locale_test locale_test) 1001 1002 ### win32_ordinal_test 1003 1004# Disabled because we cannot test with shared sndfile library 1005# if (WIN32 AND BUILD_SHARED_LIBS) 1006# add_executable (win32_ordinal_test tests/win32_ordinal_test.c) 1007# target_link_libraries (win32_ordinal_test PRIVATE sndfile test_utils) 1008# add_test (win32_ordinal_test win32_ordinal_test) 1009# endif () 1010 1011 ### cpp_test 1012 1013 add_executable (cpp_test tests/cpp_test.cc) 1014 target_link_libraries (cpp_test 1015 PRIVATE 1016 sndfile 1017 test_utils 1018 $<$<BOOL:${LIBM_REQUIRED}>:m> 1019 ) 1020 add_test (cpp_test cpp_test) 1021 1022 ### external_libs_test 1023 1024 add_executable (external_libs_test tests/external_libs_test.c) 1025 target_link_libraries (external_libs_test 1026 PRIVATE 1027 sndfile 1028 test_utils 1029 $<$<BOOL:${LIBM_REQUIRED}>:m> 1030 ) 1031 add_test (external_libs_test external_libs_test) 1032 1033 ### format_check_test 1034 1035 add_executable (format_check_test tests/format_check_test.c) 1036 target_link_libraries (format_check_test 1037 PRIVATE 1038 sndfile 1039 test_utils 1040 $<$<BOOL:${LIBM_REQUIRED}>:m> 1041 ) 1042 add_test (format_check_test format_check_test) 1043 1044 ### channel_test 1045 1046 add_executable (channel_test tests/channel_test.c) 1047 target_link_libraries (channel_test 1048 PRIVATE 1049 sndfile 1050 test_utils 1051 $<$<BOOL:${LIBM_REQUIRED}>:m> 1052 ) 1053 add_test (channel_test channel_test) 1054 1055 ### pcm_test 1056 1057 add_executable (pcm_test tests/pcm_test.c) 1058 target_link_libraries (pcm_test 1059 PRIVATE 1060 sndfile 1061 test_utils 1062 $<$<BOOL:${LIBM_REQUIRED}>:m> 1063 ) 1064 add_test (pcm_test pcm_test) 1065 1066 ### common test executables 1067 1068 add_executable (write_read_test 1069 tests/generate.c 1070 tests/write_read_test.c 1071 ) 1072 target_link_libraries (write_read_test 1073 PRIVATE 1074 sndfile 1075 test_utils 1076 $<$<BOOL:${LIBM_REQUIRED}>:m> 1077 ) 1078 target_include_directories (write_read_test PRIVATE tests) 1079 1080 add_executable (lossy_comp_test tests/lossy_comp_test.c) 1081 target_link_libraries (lossy_comp_test 1082 PRIVATE 1083 sndfile 1084 test_utils 1085 $<$<BOOL:${LIBM_REQUIRED}>:m> 1086 ) 1087 1088 add_executable (peak_chunk_test tests/peak_chunk_test.c) 1089 target_link_libraries (peak_chunk_test 1090 PRIVATE 1091 sndfile 1092 test_utils 1093 $<$<BOOL:${LIBM_REQUIRED}>:m> 1094 ) 1095 1096 add_executable (header_test tests/header_test.c) 1097 target_link_libraries (header_test 1098 PRIVATE 1099 sndfile 1100 test_utils 1101 $<$<BOOL:${LIBM_REQUIRED}>:m> 1102 ) 1103 1104 add_executable (misc_test tests/misc_test.c) 1105 target_link_libraries (misc_test 1106 PRIVATE 1107 sndfile 1108 test_utils 1109 $<$<BOOL:${LIBM_REQUIRED}>:m> 1110 ) 1111 1112 add_executable (string_test tests/string_test.c) 1113 target_link_libraries (string_test 1114 PRIVATE 1115 sndfile 1116 test_utils 1117 $<$<BOOL:${LIBM_REQUIRED}>:m> 1118 ) 1119 1120 add_executable (multi_file_test tests/multi_file_test.c) 1121 target_link_libraries (multi_file_test 1122 PRIVATE 1123 sndfile 1124 test_utils 1125 $<$<BOOL:${LIBM_REQUIRED}>:m> 1126 ) 1127 1128 add_executable (aiff_rw_test tests/aiff_rw_test.c) 1129 target_link_libraries (aiff_rw_test 1130 PRIVATE 1131 sndfile 1132 test_utils 1133 $<$<BOOL:${LIBM_REQUIRED}>:m> 1134 ) 1135 1136 add_executable (chunk_test tests/chunk_test.c) 1137 target_link_libraries (chunk_test 1138 PRIVATE 1139 sndfile 1140 test_utils 1141 $<$<BOOL:${LIBM_REQUIRED}>:m> 1142 ) 1143 1144 add_executable (long_read_write_test tests/long_read_write_test.c) 1145 target_link_libraries (long_read_write_test 1146 PRIVATE 1147 sndfile 1148 test_utils 1149 $<$<BOOL:${LIBM_REQUIRED}>:m> 1150 ) 1151 1152 add_executable (raw_test tests/raw_test.c) 1153 target_link_libraries (raw_test 1154 PRIVATE 1155 sndfile 1156 test_utils 1157 $<$<BOOL:${LIBM_REQUIRED}>:m> 1158 ) 1159 1160 add_executable (compression_size_test tests/compression_size_test.c) 1161 target_link_libraries (compression_size_test 1162 PRIVATE 1163 sndfile 1164 test_utils 1165 $<$<BOOL:${LIBM_REQUIRED}>:m> 1166 ) 1167 1168 add_executable (ogg_test tests/ogg_test.c) 1169 target_link_libraries (ogg_test 1170 PRIVATE 1171 sndfile 1172 test_utils 1173 $<$<BOOL:${LIBM_REQUIRED}>:m> 1174 ) 1175 1176 add_executable (ogg_opus_test tests/ogg_opus_test.c) 1177 target_link_libraries (ogg_opus_test 1178 PRIVATE 1179 sndfile 1180 test_utils 1181 $<$<BOOL:${LIBM_REQUIRED}>:m> 1182 ) 1183 1184 add_executable (stdin_test tests/stdin_test.c) 1185 target_link_libraries (stdin_test 1186 PRIVATE 1187 sndfile 1188 test_utils 1189 $<$<BOOL:${LIBM_REQUIRED}>:m> 1190 ) 1191 set_target_properties (stdin_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests") 1192 1193 add_executable (stdout_test tests/stdout_test.c) 1194 target_link_libraries (stdout_test 1195 PRIVATE 1196 sndfile 1197 test_utils 1198 $<$<BOOL:${LIBM_REQUIRED}>:m> 1199 ) 1200 set_target_properties (stdout_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests") 1201 1202 add_executable (stdio_test tests/stdio_test.c) 1203 target_link_libraries (stdio_test 1204 PRIVATE 1205 sndfile 1206 test_utils 1207 $<$<BOOL:${LIBM_REQUIRED}>:m> 1208 ) 1209 1210 add_executable (pipe_test tests/pipe_test.c) 1211 target_link_libraries (pipe_test 1212 PRIVATE 1213 sndfile 1214 test_utils 1215 $<$<BOOL:${LIBM_REQUIRED}>:m> 1216 ) 1217 1218 add_executable (virtual_io_test tests/virtual_io_test.c) 1219 target_link_libraries (virtual_io_test 1220 PRIVATE 1221 sndfile 1222 test_utils 1223 $<$<BOOL:${LIBM_REQUIRED}>:m> 1224 ) 1225 1226 ### g72x_test 1227 1228 add_executable (g72x_test src/G72x/g72x_test.c) 1229 target_include_directories (g72x_test 1230 PRIVATE 1231 src 1232 ${CMAKE_CURRENT_BINARY_DIR}/src 1233 ) 1234 target_link_libraries (g72x_test 1235 PRIVATE 1236 sndfile 1237 $<$<BOOL:${LIBM_REQUIRED}>:m> 1238 ) 1239 add_test (g72x_test g72x_test all) 1240 1241 ### aiff-tests 1242 1243 add_test (write_read_test_aiff write_read_test aiff) 1244 add_test (lossy_comp_test_aiff_ulaw lossy_comp_test aiff_ulaw) 1245 add_test (lossy_comp_test_aiff_alaw lossy_comp_test aiff_alaw) 1246 add_test (lossy_comp_test_aiff_gsm610 lossy_comp_test aiff_gsm610) 1247 add_test (peak_chunk_test_aiff peak_chunk_test aiff) 1248 add_test (header_test_aiff header_test aiff) 1249 add_test (misc_test_aiff misc_test aiff) 1250 add_test (string_test_aiff string_test aiff) 1251 add_test (multi_file_test_aiff multi_file_test aiff) 1252 add_test (aiff_rw_test aiff_rw_test) 1253 1254 ### au-tests 1255 1256 add_test (write_read_test_au write_read_test au) 1257 add_test (lossy_comp_test_au_ulaw lossy_comp_test au_ulaw) 1258 add_test (lossy_comp_test_au_alaw lossy_comp_test au_alaw) 1259 add_test (lossy_comp_test_au_g721 lossy_comp_test au_g721) 1260 add_test (lossy_comp_test_au_g723 lossy_comp_test au_g723) 1261 add_test (header_test_au header_test au) 1262 add_test (misc_test_au misc_test au) 1263 add_test (multi_file_test_au multi_file_test au) 1264 1265 ### caf-tests 1266 1267 add_test (write_read_test_caf write_read_test caf) 1268 add_test (lossy_comp_test_caf_ulaw lossy_comp_test caf_ulaw) 1269 add_test (lossy_comp_test_caf_alaw lossy_comp_test caf_alaw) 1270 add_test (header_test_caf header_test caf) 1271 add_test (peak_chunk_test_caf peak_chunk_test caf) 1272 add_test (misc_test_caf misc_test caf) 1273 add_test (chunk_test_caf chunk_test caf) 1274 add_test (string_test_caf string_test caf) 1275 add_test (long_read_write_test_alac long_read_write_test alac) 1276 1277 # wav-tests 1278 add_test (write_read_test_wav write_read_test wav) 1279 add_test (lossy_comp_test_wav_pcm lossy_comp_test wav_pcm) 1280 add_test (lossy_comp_test_wav_ima lossy_comp_test wav_ima) 1281 add_test (lossy_comp_test_wav_msadpcm lossy_comp_test wav_msadpcm) 1282 add_test (lossy_comp_test_wav_ulaw lossy_comp_test wav_ulaw) 1283 add_test (lossy_comp_test_wav_alaw lossy_comp_test wav_alaw) 1284 add_test (lossy_comp_test_wav_gsm610 lossy_comp_test wav_gsm610) 1285 add_test (lossy_comp_test_wav_g721 lossy_comp_test wav_g721) 1286 add_test (lossy_comp_test_wav_nmsadpcm lossy_comp_test wav_nmsadpcm) 1287 add_test (peak_chunk_test_wav peak_chunk_test wav) 1288 add_test (header_test_wav header_test wav) 1289 add_test (misc_test_wav misc_test wav) 1290 add_test (string_test_wav string_test wav) 1291 add_test (multi_file_test_wav multi_file_test wav) 1292 add_test (chunk_test_wav chunk_test wav) 1293 1294 ### w64-tests 1295 1296 add_test (write_read_test_w64 write_read_test w64) 1297 add_test (lossy_comp_test_w64_ima lossy_comp_test w64_ima) 1298 add_test (lossy_comp_test_w64_msadpcm lossy_comp_test w64_msadpcm) 1299 add_test (lossy_comp_test_w64_ulaw lossy_comp_test w64_ulaw) 1300 add_test (lossy_comp_test_w64_alaw lossy_comp_test w64_alaw) 1301 add_test (lossy_comp_test_w64_gsm610 lossy_comp_test w64_gsm610) 1302 add_test (header_test_w64 header_test w64) 1303 add_test (misc_test_w64 misc_test w64) 1304 1305 ### rf64-tests 1306 1307 add_test (write_read_test_rf64 write_read_test rf64) 1308 add_test (header_test_rf64 header_test rf64) 1309 add_test (misc_test_rf64 misc_test rf64) 1310 add_test (string_test_rf64 string_test rf64) 1311 add_test (peak_chunk_test_rf64 peak_chunk_test rf64) 1312 add_test (chunk_test_rf64 chunk_test rf64) 1313 1314 ### raw-tests 1315 add_test (write_read_test_raw write_read_test raw) 1316 add_test (lossy_comp_test_raw_ulaw lossy_comp_test raw_ulaw) 1317 add_test (lossy_comp_test_raw_alaw lossy_comp_test raw_alaw) 1318 add_test (lossy_comp_test_raw_gsm610 lossy_comp_test raw_gsm610) 1319 add_test (lossy_comp_test_vox_adpcm lossy_comp_test vox_adpcm) 1320 add_test (raw_test raw_test) 1321 1322 ### paf-tests 1323 add_test (write_read_test_paf write_read_test paf) 1324 add_test (header_test_paf header_test paf) 1325 add_test (misc_test_paf misc_test paf) 1326 1327 ### svx-tests 1328 add_test (write_read_test_svx write_read_test svx) 1329 add_test (header_test_svx header_test svx) 1330 add_test (misc_test_svx misc_test svx) 1331 1332 ### nist-tests 1333 add_test (write_read_test_nist write_read_test nist) 1334 add_test (lossy_comp_test_nist_ulaw lossy_comp_test nist_ulaw) 1335 add_test (lossy_comp_test_nist_alaw lossy_comp_test nist_alaw) 1336 add_test (header_test_nist header_test nist) 1337 add_test (misc_test_nist misc_test nist) 1338 1339 ### ircam-tests 1340 add_test (write_read_test_ircam write_read_test ircam) 1341 add_test (lossy_comp_test_ircam_ulaw lossy_comp_test ircam_ulaw) 1342 add_test (lossy_comp_test_ircam_alaw lossy_comp_test ircam_alaw) 1343 add_test (header_test_ircam header_test ircam) 1344 add_test (misc_test_ircam misc_test ircam) 1345 1346 ### voc-tests 1347 add_test (write_read_test_voc write_read_test voc) 1348 add_test (lossy_comp_test_voc_ulaw lossy_comp_test voc_ulaw) 1349 add_test (lossy_comp_test_voc_alaw lossy_comp_test voc_alaw) 1350 add_test (header_test_voc header_test voc) 1351 add_test (misc_test_voc misc_test voc) 1352 1353 ### mat4-tests 1354 add_test (write_read_test_mat4 write_read_test mat4) 1355 add_test (header_test_mat4 header_test mat4) 1356 add_test (misc_test_mat4 misc_test mat4) 1357 1358 ### mat5-tests 1359 add_test (write_read_test_mat5 write_read_test mat5) 1360 add_test (header_test_mat5 header_test mat5) 1361 add_test (misc_test_mat5 misc_test mat5) 1362 1363 ### pvf-tests 1364 add_test (write_read_test_pvf write_read_test pvf) 1365 add_test (header_test_pvf header_test pvf) 1366 add_test (misc_test_pvf misc_test pvf) 1367 1368 ### xi-tests 1369 add_test (lossy_comp_test_xi_dpcm lossy_comp_test xi_dpcm) 1370 1371 ### htk-tests 1372 add_test (write_read_test_htk write_read_test htk) 1373 add_test (header_test_htk header_test htk) 1374 add_test (misc_test_htk misc_test htk) 1375 1376 ### avr-tests 1377 add_test (write_read_test_avr write_read_test avr) 1378 add_test (header_test_avr header_test avr) 1379 add_test (misc_test_avr misc_test avr) 1380 1381 ### sds-tests 1382 add_test (write_read_test_sds write_read_test sds) 1383 add_test (header_test_sds header_test sds) 1384 add_test (misc_test_sds misc_test sds) 1385 1386 # sd2-tests 1387 add_test (write_read_test_sd2 write_read_test sd2) 1388 1389 ### wve-tests 1390 add_test (lossy_comp_test_wve lossy_comp_test wve) 1391 1392 ### mpc2k-tests 1393 add_test (write_read_test_mpc2k write_read_test mpc2k) 1394 add_test (header_test_mpc2k header_test mpc2k) 1395 add_test (misc_test_mpc2k misc_test mpc2k) 1396 1397 ### flac-tests 1398 add_test (write_read_test_flac write_read_test flac) 1399 add_test (compression_size_test_flac compression_size_test flac) 1400 add_test (string_test_flac string_test flac) 1401 1402 ### vorbis-tests 1403 add_test (ogg_test ogg_test) 1404 add_test (compression_size_test_vorbis compression_size_test vorbis) 1405 add_test (lossy_comp_test_ogg_vorbis lossy_comp_test ogg_vorbis) 1406 add_test (string_test_ogg string_test ogg) 1407 add_test (misc_test_ogg misc_test ogg) 1408 1409 ### opus-tests ### 1410 add_test (ogg_opus_test ogg_opus_test) 1411 add_test (compression_size_test_opus compression_size_test opus) 1412 add_test (lossy_comp_test_ogg_opus lossy_comp_test ogg_opus) 1413 add_test (string_test_opus string_test opus) 1414 1415 ### io-tests 1416 add_test (stdio_test stdio_test) 1417 add_test (pipe_test pipe_test) 1418 add_test (virtual_io_test virtual_io_test) 1419 1420 set (SNDFILE_TEST_TARGETS 1421 test_utils 1422 test_main 1423 sfversion 1424 error_test 1425 ulaw_test 1426 alaw_test 1427 dwvw_test 1428 command_test 1429 floating_point_test 1430 checksum_test 1431 scale_clip_test 1432 headerless_test 1433 rdwr_test 1434 locale_test 1435 cpp_test 1436 external_libs_test 1437 format_check_test 1438 channel_test 1439 pcm_test 1440 write_read_test 1441 lossy_comp_test 1442 peak_chunk_test 1443 header_test 1444 misc_test 1445 string_test 1446 multi_file_test 1447 aiff_rw_test 1448 chunk_test 1449 long_read_write_test 1450 raw_test 1451 compression_size_test 1452 ogg_test 1453 stdin_test 1454 stdout_test 1455 stdio_test 1456 pipe_test 1457 virtual_io_test 1458 g72x_test 1459 ) 1460 1461# if (WIN32 AND BUILD_SHARED_LIBS) 1462# list (APPEND SNDFILE_TEST_TARGETS win32_ordinal_test) 1463# endif () 1464 1465 set_target_properties(${SNDFILE_TEST_TARGETS} PROPERTIES FOLDER Tests) 1466 1467endif () 1468 1469if (ENABLE_CPACK) 1470 include (CPack) 1471endif () 1472