1605 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			1605 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
|   | cmake_minimum_required (VERSION 3.1...3.18)
 | ||
|  | 
 | ||
|  | # MSVC runtime library flags are selected by an abstraction, CMake >= 3.15
 | ||
|  | # This policy still need to be set even with cmake_minimum_required() command above.
 | ||
|  | if (POLICY CMP0091)
 | ||
|  | 	if ((DEFINED ENABLE_STATIC_RUNTIME) AND (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY))
 | ||
|  | 		message (FATAL_ERROR "Both ENABLE_STATIC_RUNTIME and CMAKE_MSVC_RUNTIME_LIBRARY are set.")
 | ||
|  | 		return ()
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 	if (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
 | ||
|  | 		cmake_policy (SET CMP0091 NEW)
 | ||
|  | 	else ()
 | ||
|  | 		cmake_policy (SET CMP0091 OLD)
 | ||
|  | 	endif ()
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | option (ENABLE_EXTERNAL_LIBS "Enable FLAC, Vorbis, and Opus codecs" ON)
 | ||
|  | if (ENABLE_EXTERNAL_LIBS)
 | ||
|  | 	list (APPEND VCPKG_MANIFEST_FEATURES "external-libs")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | option (ENABLE_MPEG "Enable MPEG codecs" ON)
 | ||
|  | if (ENABLE_MPEG)
 | ||
|  | 	list (APPEND VCPKG_MANIFEST_FEATURES "mpeg")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | option (ENABLE_EXPERIMENTAL "Enable experimental code" OFF)
 | ||
|  | if (ENABLE_EXPERIMENTAL)
 | ||
|  | 	list (APPEND VCPKG_MANIFEST_FEATURES "speex")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | option (BUILD_REGTEST "Build regtest" OFF)
 | ||
|  | if (BUILD_REGTEST)
 | ||
|  | 	list (APPEND VCPKG_MANIFEST_FEATURES "regtest")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | project(libsndfile VERSION 1.2.2)
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Variables
 | ||
|  | #
 | ||
|  | 
 | ||
|  | set (CMAKE_C_STANDARD 99)
 | ||
|  | set (CMAKE_C_STANDARD_REQUIRED TRUE)
 | ||
|  | set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 | ||
|  | 
 | ||
|  | set (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 "")
 | ||
|  | set (CPACK_PACKAGE_VERSION_FULL "${PROJECT_VERSION}${CPACK_PACKAGE_VERSION_STAGE}")
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # System-wide includes
 | ||
|  | #
 | ||
|  | 
 | ||
|  | include (GNUInstallDirs)
 | ||
|  | include (FeatureSummary)
 | ||
|  | include (CMakeDependentOption)
 | ||
|  | include (CTest)
 | ||
|  | include (CheckCCompilerFlag)
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Options
 | ||
|  | #
 | ||
|  | 
 | ||
|  | option (BUILD_SHARED_LIBS "Build shared libraries" OFF)
 | ||
|  | if (BUILD_SHARED_LIBS AND BUILD_TESTING)
 | ||
|  | 	set (BUILD_TESTING OFF)
 | ||
|  | 	message ("Build testing required static libraries. To prevent build errors BUILD_TESTING disabled.")
 | ||
|  | endif ()
 | ||
|  | option (BUILD_PROGRAMS "Build programs" ON)
 | ||
|  | option (BUILD_EXAMPLES "Build examples" ON)
 | ||
|  | option (ENABLE_CPACK "Enable CPack support" ON)
 | ||
|  | option (ENABLE_BOW_DOCS "Enable black-on-white html docs" OFF)
 | ||
|  | if (MSVC AND (DEFINED ENABLE_STATIC_RUNTIME))
 | ||
|  | 	option (ENABLE_STATIC_RUNTIME "Enable static runtime" ${ENABLE_STATIC_RUNTIME})
 | ||
|  | elseif (MINGW)
 | ||
|  | 	option (ENABLE_STATIC_RUNTIME "Enable static runtime" OFF)
 | ||
|  | endif ()
 | ||
|  | option (ENABLE_PACKAGE_CONFIG "Generate and install package config file" ON)
 | ||
|  | option (INSTALL_PKGCONFIG_MODULE "Generate and install pkg-config module" ON)
 | ||
|  | 
 | ||
|  | list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 | ||
|  | if (CMAKE_VERSION VERSION_LESS 3.14)
 | ||
|  | 	list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/sqlite")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Setup definitions
 | ||
|  | #
 | ||
|  | 
 | ||
|  | include(SndFileChecks)
 | ||
|  | 
 | ||
|  | if (ENABLE_EXTERNAL_LIBS AND NOT (Vorbis_FOUND OR FLAC_FOUND OR OPUS_FOUND))
 | ||
|  | 	set (ENABLE_EXTERNAL_LIBS OFF)
 | ||
|  | endif()
 | ||
|  | if(ENABLE_MPEG AND (NOT HAVE_MPEG_LIBS))
 | ||
|  | 	set (ENABLE_MPEG OFF)
 | ||
|  | endif()
 | ||
|  | if (BUILD_REGTEST AND (NOT SQLITE3_FOUND))
 | ||
|  | 	set (BUILD_REGTEST OFF)
 | ||
|  | endif()
 | ||
|  | 
 | ||
|  | cmake_dependent_option (ENABLE_CPU_CLIP "Enable tricky cpu specific clipper" ON "CPU_CLIPS_POSITIVE;CPU_CLIPS_NEGATIVE" OFF)
 | ||
|  | if (NOT ENABLE_CPU_CLIP)
 | ||
|  | 	set (CPU_CLIPS_POSITIVE FALSE)
 | ||
|  | 	set (CPU_CLIPS_NEGATIVE FALSE)
 | ||
|  | endif ()
 | ||
|  | cmake_dependent_option (ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise" OFF "WIN32;BUILD_SHARED_LIBS" OFF)
 | ||
|  | cmake_dependent_option (INSTALL_MANPAGES "Install man pages for programs" ON "BUILD_PROGRAMS" OFF)
 | ||
|  | 
 | ||
|  | if (NOT MSVC)
 | ||
|  | 	if (CPU_IS_X86)
 | ||
|  | 		check_c_compiler_flag (-msse2 HAVE_MSSE2_COMPILER_FLAG)
 | ||
|  | 		if (HAVE_MSSE2_COMPILER_FLAG)
 | ||
|  | 			cmake_dependent_option (ENABLE_SSE2 "Add SSE2 compiler flag" ON "HAVE_MSSE2_COMPILER_FLAG" OFF)
 | ||
|  | 		endif ()
 | ||
|  | 	endif ()
 | ||
|  | endif ()
 | ||
|  | if (ENABLE_SSE2)
 | ||
|  | 	add_compile_options (-msse2)
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | set (HAVE_EXTERNAL_XIPH_LIBS ${ENABLE_EXTERNAL_LIBS})
 | ||
|  | set (HAVE_SQLITE3 ${BUILD_REGTEST})
 | ||
|  | set (HAVE_ALSA_ASOUNDLIB_H ${ALSA_FOUND})
 | ||
|  | set (HAVE_SNDIO_H ${SNDIO_FOUND})
 | ||
|  | 
 | ||
|  | set (ENABLE_EXPERIMENTAL_CODE ${ENABLE_EXPERIMENTAL})
 | ||
|  | set (HAVE_MPEG ${ENABLE_MPEG})
 | ||
|  | set (HAVE_SPEEX ${ENABLE_EXPERIMENTAL})
 | ||
|  | 
 | ||
|  | add_feature_info (BUILD_SHARED_LIBS BUILD_SHARED_LIBS "build shared libraries")
 | ||
|  | add_feature_info (ENABLE_EXTERNAL_LIBS ENABLE_EXTERNAL_LIBS "enable FLAC, Vorbis, and Opus codecs")
 | ||
|  | add_feature_info (ENABLE_MPEG ENABLE_MPEG "enable MPEG audio (including mp3) codecs")
 | ||
|  | 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 (ENABLE_CPU_CLIP ENABLE_CPU_CLIP "Enable 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")
 | ||
|  | add_feature_info (INSTALL_PKGCONFIG_MODULE INSTALL_PKGCONFIG_MODULE "generate and install pkg-config module")
 | ||
|  | add_feature_info (INSTALL_MANPAGES INSTALL_MANPAGES "install man pages for programs")
 | ||
|  | if (WIN32 AND BUILD_SHARED_LIBS)
 | ||
|  | 	add_feature_info (ENABLE_COMPATIBLE_LIBSNDFILE_NAME ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | if (HAVE_MSSE2_COMPILER_FLAG)
 | ||
|  | 	add_feature_info (ENABLE_SSE2 ENABLE_SSE2 "add SSE2 compiler flag")
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 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 (mp3lame PROPERTIES | ||
|  | 	TYPE RECOMMENDED
 | ||
|  | 	URL "https://lame.sourceforge.io/"
 | ||
|  | 	DESCRIPTION "High quality MPEG Audio Layer III (MP3) encoder"
 | ||
|  | 	PURPOSE "Enables MPEG layer III (MP3) writing support"
 | ||
|  | 	)
 | ||
|  | set_package_properties (mpg123 PROPERTIES | ||
|  | 	TYPE RECOMMENDED
 | ||
|  | 	URL "https://www.mpg123.de/"
 | ||
|  | 	DESCRIPTION "MPEG Audio Layer I/II/III decoder"
 | ||
|  | 	PURPOSE "Enables MPEG Audio reading support"
 | ||
|  | 	)
 | ||
|  | set_package_properties(Opus PROPERTIES | ||
|  | 	TYPE RECOMMENDED
 | ||
|  | 	URL	"www.opus-codec.org/"
 | ||
|  | 	DESCRIPTION "Standardized open source low-latency fullband codec"
 | ||
|  | 	PURPOSE	"Enables experimental Opus 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
 | ||
|  | #
 | ||
|  | 
 | ||
|  | configure_file (src/config.h.cmake src/config.h)
 | ||
|  | 
 | ||
|  | if (INSTALL_PKGCONFIG_MODULE)
 | ||
|  | 
 | ||
|  | 	set (prefix ${CMAKE_INSTALL_PREFIX})
 | ||
|  | 	set (exec_prefix "\$\{prefix\}")
 | ||
|  | 	set (libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
 | ||
|  | 	set (includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
 | ||
|  | 	set (VERSION ${PROJECT_VERSION})
 | ||
|  | 	if (ENABLE_EXTERNAL_LIBS)
 | ||
|  | 		set (EXTERNAL_XIPH_REQUIRE "flac ogg vorbis vorbisenc opus")
 | ||
|  | 		if (ENABLE_EXPERIMENTAL)
 | ||
|  | 			set (EXTERNAL_XIPH_REQUIRE "${EXTERNAL_XIPH_REQUIRE} speex")
 | ||
|  | 		endif ()
 | ||
|  | 	endif ()
 | ||
|  | 	if (ENABLE_MPEG)
 | ||
|  | 		set (EXTERNAL_MPEG_REQUIRE "libmpg123")
 | ||
|  | 		set (EXTERNAL_MPEG_LIBS "-lmp3lame")
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 	configure_file (sndfile.pc.in sndfile.pc @ONLY)
 | ||
|  | 
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # libsndfile
 | ||
|  | #
 | ||
|  | 
 | ||
|  | # Public libsndfile headers
 | ||
|  | set (sndfile_HDRS | ||
|  | 	include/sndfile.h
 | ||
|  | 	include/sndfile.hh
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # libsndfile static library
 | ||
|  | #
 | ||
|  | 
 | ||
|  | add_library (sndfile | ||
|  | 	src/sfconfig.h
 | ||
|  | 	src/sfendian.h
 | ||
|  | 	src/sf_unistd.h
 | ||
|  | 	src/common.h
 | ||
|  | 	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.h
 | ||
|  | 	src/ogg.c
 | ||
|  | 	src/chanmap.h
 | ||
|  | 	src/chanmap.c
 | ||
|  | 	src/id3.h
 | ||
|  | 	src/id3.c
 | ||
|  | 	$<$<BOOL:${WIN32}>:src/windows.c>
 | ||
|  | 	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.h
 | ||
|  | 	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/ogg_vcomment.h
 | ||
|  | 	src/ogg_vcomment.c
 | ||
|  | 	src/nms_adpcm.c
 | ||
|  | 	src/mpeg.c
 | ||
|  | 	src/mpeg_decode.c
 | ||
|  | 	src/mpeg_l3_encode.c
 | ||
|  | 	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
 | ||
|  | 	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
 | ||
|  | 	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
 | ||
|  | 	${sndfile_HDRS}
 | ||
|  | 	${CMAKE_CURRENT_BINARY_DIR}/src/config.h
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | add_library (SndFile::sndfile ALIAS sndfile)
 | ||
|  | 
 | ||
|  | target_include_directories (sndfile | ||
|  | 	PUBLIC
 | ||
|  | 		$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
 | ||
|  | 		$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
 | ||
|  | 		$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 | ||
|  | 	PRIVATE
 | ||
|  | 		src
 | ||
|  | 		$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
 | ||
|  | 	)
 | ||
|  | target_link_libraries (sndfile | ||
|  | 	PRIVATE
 | ||
|  | 		$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Ogg::ogg>
 | ||
|  | 		$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Vorbis::vorbisenc>
 | ||
|  | 		$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:FLAC::FLAC>
 | ||
|  | 		$<$<AND:$<BOOL:${ENABLE_EXPERIMENTAL}>,$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>,$<BOOL:${HAVE_SPEEX}>>:Speex::Speex>
 | ||
|  | 		$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Opus::opus>
 | ||
|  | 		$<$<BOOL:${HAVE_MPEG}>:MPG123::libmpg123>
 | ||
|  | 		$<$<BOOL:${HAVE_MPEG}>:mp3lame::mp3lame>
 | ||
|  | 	)
 | ||
|  | set_target_properties (sndfile PROPERTIES | ||
|  | 	PUBLIC_HEADER "${sndfile_HDRS}"
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | if (ENABLE_COMPATIBLE_LIBSNDFILE_NAME)
 | ||
|  | 	if (MINGW OR CYGWIN)
 | ||
|  | 		set_target_properties (sndfile PROPERTIES | ||
|  | 			RUNTIME_OUTPUT_NAME "sndfile-1"
 | ||
|  | 			)
 | ||
|  | 	else ()
 | ||
|  | 		set_target_properties (sndfile PROPERTIES | ||
|  | 			RUNTIME_OUTPUT_NAME "libsndfile-1"
 | ||
|  | 			)
 | ||
|  | 	endif ()
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | if (BUILD_SHARED_LIBS)
 | ||
|  | 
 | ||
|  | 	#
 | ||
|  | 	# ABI version of library.
 | ||
|  | 	#
 | ||
|  | 
 | ||
|  | 	#
 | ||
|  | 	# Read libtool version from `configure.ac` and set libsndfile ABI version:
 | ||
|  | 	#
 | ||
|  | 	#   SNDFILE_ABI_VERSION_MAJOR
 | ||
|  | 	#   SNDFILE_ABI_VERSION_MINOR
 | ||
|  | 	#   SNDFILE_ABI_VERSION_PATCH
 | ||
|  | 	#   SNDFILE_ABI_VERSION
 | ||
|  | 	#
 | ||
|  | 	# and Mach-O current and compatibility versions:
 | ||
|  | 	#
 | ||
|  | 	#   SNDFILE_MACHO_CURRENT_VERSION
 | ||
|  | 	#   SNDFILE_MACHO_COMPATIBILITY_VERSION
 | ||
|  | 	#
 | ||
|  | 
 | ||
|  | 	include (SetupABIVersions)
 | ||
|  | 
 | ||
|  | 	setup_abi_versions()
 | ||
|  | 
 | ||
|  | 	if (WIN32)
 | ||
|  | 		set (VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR})
 | ||
|  | 		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})
 | ||
|  | 
 | ||
|  | 		configure_file (src/version-metadata.rc.in src/version-metadata.rc @ONLY)
 | ||
|  | 		target_sources (sndfile PRIVATE ${PROJECT_BINARY_DIR}/src/version-metadata.rc)
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 	set_target_properties (sndfile PROPERTIES | ||
|  | 		SOVERSION ${SNDFILE_ABI_VERSION_MAJOR}
 | ||
|  | 		VERSION ${SNDFILE_ABI_VERSION}
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	if (APPLE)
 | ||
|  | 		if (NOT (CMAKE_VERSION VERSION_LESS 3.17))
 | ||
|  | 			set_target_properties (sndfile PROPERTIES | ||
|  | 				MACHO_CURRENT_VERSION ${SNDFILE_MACHO_CURRENT_VERSION}
 | ||
|  | 				MACHO_COMPATIBILITY_VERSION ${SNDFILE_MACHO_COMPATIBILITY_VERSION}
 | ||
|  | 				)
 | ||
|  | 		else ()
 | ||
|  | 			message (FATAL_ERROR "Apple platform requires cmake >= 3.17 to build dylib.")
 | ||
|  | 		endif ()
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 	# Symbol files generation
 | ||
|  | 
 | ||
|  | 	if (WIN32)
 | ||
|  | 		set (SYMBOL_FILENAME "sndfile.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} ${SNDFILE_ABI_VERSION} > ${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 | ||
|  | 				PRIVATE
 | ||
|  | 					${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}
 | ||
|  | 				)
 | ||
|  | 		elseif (SYMBOL_OS MATCHES "darwin")
 | ||
|  | 			add_dependencies (sndfile GENFILES)
 | ||
|  | 			if (CMAKE_VERSION VERSION_LESS 3.13)
 | ||
|  | 				set_property (TARGET sndfile APPEND_STRING PROPERTY | ||
|  | 					LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
 | ||
|  | 					)
 | ||
|  | 			else ()
 | ||
|  | 				target_link_options (sndfile PRIVATE "LINKER:-exported_symbols_list,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
 | ||
|  | 			endif()
 | ||
|  | 		elseif (SYMBOL_OS MATCHES "os")
 | ||
|  | 			add_dependencies (sndfile GENFILES)
 | ||
|  | 			if (CMAKE_VERSION VERSION_LESS 3.13)
 | ||
|  | 				set_property (TARGET sndfile APPEND_STRING PROPERTY | ||
|  | 					LINK_FLAGS "-Wl,-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
 | ||
|  | 					)
 | ||
|  | 			else ()
 | ||
|  | 				target_link_options (sndfile PRIVATE "LINKER:-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
 | ||
|  | 			endif()
 | ||
|  | 		elseif (UNIX)
 | ||
|  | 			add_dependencies (sndfile GENFILES)
 | ||
|  | 			if (CMAKE_VERSION VERSION_LESS 3.13)
 | ||
|  | 				set_property (TARGET sndfile APPEND_STRING PROPERTY | ||
|  | 					LINK_FLAGS "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
 | ||
|  | 					)
 | ||
|  | 			else ()
 | ||
|  | 				target_link_options (sndfile PRIVATE "LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
 | ||
|  | 			endif()
 | ||
|  | 		endif()
 | ||
|  | 	endif()
 | ||
|  | 
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Programs
 | ||
|  | #
 | ||
|  | 
 | ||
|  | if (BUILD_PROGRAMS)
 | ||
|  | 
 | ||
|  | # sndfile-info
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-info | ||
|  | 		programs/sndfile-info.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-info | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | # sndfile-play
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-play | ||
|  | 		$<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c>
 | ||
|  | 		$<$<NOT:$<BOOL:${BEOS}>>:programs/common.c>
 | ||
|  | 		$<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c>
 | ||
|  | 		$<$<BOOL:${BEOS}>:programs/sndfile-play-beos.cpp>
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-play | ||
|  | 		PRIVATE
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-play PRIVATE $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 	target_link_libraries (sndfile-play PRIVATE sndfile)
 | ||
|  | 	if (WIN32)
 | ||
|  | 		target_link_libraries(sndfile-play PRIVATE winmm)
 | ||
|  | 	# 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 (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
 | ||
|  | 		target_link_libraries (sndfile-play PRIVATE Sndio::Sndio)
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | # sndfile-convert
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-convert | ||
|  | 		programs/sndfile-convert.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-convert PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-cmp
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-cmp | ||
|  | 		programs/sndfile-cmp.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-cmp | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-cmp PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-metadata-set
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-metadata-set | ||
|  | 		programs/sndfile-metadata-set.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-metadata-set | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-metadata-set PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-metadata-get
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-metadata-get | ||
|  | 		programs/sndfile-metadata-get.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-metadata-get | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-metadata-get PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-interleave
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-interleave | ||
|  | 		programs/sndfile-interleave.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-interleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-deinterleave
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-deinterleave | ||
|  | 		programs/sndfile-deinterleave.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-deinterleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-concat
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-concat | ||
|  | 		programs/sndfile-concat.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-concat PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | # sndfile-salvage
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-salvage | ||
|  | 		programs/sndfile-salvage.c
 | ||
|  | 		programs/common.c
 | ||
|  | 		programs/common.h
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-salvage | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sndfile-salvage PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
 | ||
|  | 
 | ||
|  | 	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 ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Examples
 | ||
|  | #
 | ||
|  | 
 | ||
|  | if (BUILD_EXAMPLES)
 | ||
|  | 
 | ||
|  | # sndfile-to-text
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-to-text examples/sndfile-to-text.c)
 | ||
|  | 	target_link_libraries (sndfile-to-text PRIVATE sndfile)
 | ||
|  | 
 | ||
|  | # sndfile-loopify
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-loopify examples/sndfile-loopify.c)
 | ||
|  | 	target_link_libraries (sndfile-loopify PRIVATE sndfile)
 | ||
|  | 
 | ||
|  | # make_sine
 | ||
|  | 
 | ||
|  | 	add_executable (make_sine examples/make_sine.c)
 | ||
|  | 	target_link_libraries (make_sine | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | # sfprocess
 | ||
|  | 
 | ||
|  | 	add_executable (sfprocess examples/sfprocess.c)
 | ||
|  | 	target_link_libraries (sfprocess | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | # list_formats
 | ||
|  | 
 | ||
|  | 	add_executable (list_formats examples/list_formats.c)
 | ||
|  | 	target_link_libraries (list_formats | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | # generate
 | ||
|  | 
 | ||
|  | 	add_executable (generate examples/generate.c)
 | ||
|  | 	target_link_libraries (generate PRIVATE sndfile)
 | ||
|  | 
 | ||
|  | # sndfilehandle
 | ||
|  | 
 | ||
|  | 	add_executable (sndfilehandle examples/sndfilehandle.cc)
 | ||
|  | 	target_link_libraries (sndfilehandle PUBLIC sndfile)
 | ||
|  | 
 | ||
|  | 	set (SNDFILE_EXAMPLE_TARGETS | ||
|  | 		sndfile-to-text
 | ||
|  | 		sndfile-loopify
 | ||
|  | 		make_sine
 | ||
|  | 		sfprocess
 | ||
|  | 		list_formats
 | ||
|  | 		generate
 | ||
|  | 		sndfilehandle
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	set_target_properties(${SNDFILE_EXAMPLE_TARGETS} PROPERTIES FOLDER Examples)
 | ||
|  | 
 | ||
|  | 
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # sndfile-regtest
 | ||
|  | #
 | ||
|  | 
 | ||
|  | if (BUILD_REGTEST)
 | ||
|  | 
 | ||
|  | 	add_executable (sndfile-regtest | ||
|  | 		regtest/sndfile-regtest.c
 | ||
|  | 		regtest/database.c
 | ||
|  | 		regtest/checksum.c
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (sndfile-regtest | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries(sndfile-regtest | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			SQLite::SQLite3
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Installation
 | ||
|  | #
 | ||
|  | 
 | ||
|  | if (ENABLE_PACKAGE_CONFIG)
 | ||
|  | 
 | ||
|  | 	if (WIN32 AND (NOT MINGW) AND (NOT CYGWIN))
 | ||
|  | 		set (CMAKE_INSTALL_PACKAGEDIR cmake) 
 | ||
|  | 	 else ()
 | ||
|  | 	 	set (CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/SndFile)
 | ||
|  | 	 endif()
 | ||
|  | 
 | ||
|  | 	 install (TARGETS ${SNDFILE_PROGRAM_TARGETS} | ||
|  | 		RUNTIME DESTINATION			${CMAKE_INSTALL_BINDIR}
 | ||
|  |  	)
 | ||
|  | 
 | ||
|  | 	install (TARGETS sndfile | ||
|  | 		EXPORT SndFileTargets
 | ||
|  | 		RUNTIME DESTINATION			${CMAKE_INSTALL_BINDIR}
 | ||
|  | 		ARCHIVE DESTINATION			${CMAKE_INSTALL_LIBDIR}
 | ||
|  | 		LIBRARY DESTINATION			${CMAKE_INSTALL_LIBDIR}
 | ||
|  | 		PUBLIC_HEADER DESTINATION	${CMAKE_INSTALL_INCLUDEDIR}
 | ||
|  | 	)
 | ||
|  | 
 | ||
|  | 	export (EXPORT SndFileTargets NAMESPACE SndFile:: FILE ${PROJECT_BINARY_DIR}/SndFileTargets.cmake)
 | ||
|  | 
 | ||
|  | 	include (CMakePackageConfigHelpers)
 | ||
|  | 
 | ||
|  | 	if (ENABLE_EXTERNAL_LIBS)
 | ||
|  | 		set (SndFile_WITH_EXTERNAL_LIBS 1)
 | ||
|  | 		list (APPEND FIND_MODULES_INSTALL_LIST  | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/FindFLAC.cmake
 | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/FindOgg.cmake
 | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/FindOpus.cmake
 | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/FindVorbis.cmake)
 | ||
|  | 	else ()
 | ||
|  | 		set (SndFile_WITH_EXTERNAL_LIBS 0)
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 	if(ENABLE_MPEG)
 | ||
|  | 		set (SndFile_WITH_MPEG 1)
 | ||
|  | 		list (APPEND FIND_MODULES_INSTALL_LIST  | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/Findmpg123.cmake
 | ||
|  | 			${CMAKE_CURRENT_LIST_DIR}/cmake/Findmp3lame.cmake)
 | ||
|  | 	else ()
 | ||
|  | 		set (SndFile_WITH_MPEG 0)
 | ||
|  | 	endif ()
 | ||
|  | 
 | ||
|  | 	set (INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
 | ||
|  | 	configure_package_config_file(cmake/SndFileConfig.cmake.in SndFileConfig.cmake | ||
|  | 		INSTALL_DESTINATION ${PROJECT_BINARY_DIR}
 | ||
|  | 		INSTALL_PREFIX ${PROJECT_BINARY_DIR}
 | ||
|  | 		PATH_VARS INCLUDE_INSTALL_DIR
 | ||
|  | 		)
 | ||
|  | 	configure_package_config_file(cmake/SndFileConfig.cmake.in SndFileConfig2.cmake | ||
|  | 		INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
 | ||
|  | 		PATH_VARS INCLUDE_INSTALL_DIR
 | ||
|  | 		)
 | ||
|  | 	write_basic_package_version_file (SndFileConfigVersion.cmake COMPATIBILITY SameMajorVersion)
 | ||
|  | 
 | ||
|  | 	install(EXPORT SndFileTargets | ||
|  | 		NAMESPACE SndFile::
 | ||
|  | 		DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
 | ||
|  | 		)
 | ||
|  | 	install( | ||
|  | 		FILES ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfig2.cmake
 | ||
|  | 		RENAME SndFileConfig.cmake
 | ||
|  | 		DESTINATION	${CMAKE_INSTALL_PACKAGEDIR}
 | ||
|  | 		)
 | ||
|  | 	install( | ||
|  | 		FILES
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/SndFileConfigVersion.cmake
 | ||
|  | 		DESTINATION	${CMAKE_INSTALL_PACKAGEDIR}
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 		if (NOT BUILD_SHARED_LIBS AND FIND_MODULES_INSTALL_LIST)
 | ||
|  | 			file(COPY ${FIND_MODULES_INSTALL_LIST} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 | ||
|  | 			install(FILES ${FIND_MODULES_INSTALL_LIST} DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
 | ||
|  | 		endif ()
 | ||
|  | else ()
 | ||
|  | 
 | ||
|  | 	install (TARGETS sndfile ${sdnfile_PROGRAMS} | ||
|  | 		RUNTIME DESTINATION			${CMAKE_INSTALL_BINDIR}
 | ||
|  | 		ARCHIVE DESTINATION			${CMAKE_INSTALL_LIBDIR}
 | ||
|  | 		LIBRARY DESTINATION			${CMAKE_INSTALL_LIBDIR}
 | ||
|  | 		PUBLIC_HEADER DESTINATION	${CMAKE_INSTALL_INCLUDEDIR})
 | ||
|  | 
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | if (INSTALL_MANPAGES)
 | ||
|  | 
 | ||
|  | 	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-concat.1
 | ||
|  | 		man/sndfile-interleave.1
 | ||
|  | 		man/sndfile-salvage.1
 | ||
|  | 		)
 | ||
|  | 	install (FILES ${man_MANS} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
 | ||
|  | 	install (FILES man/sndfile-metadata-get.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-metadata-set.1)
 | ||
|  | 	install (FILES man/sndfile-interleave.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-deinterleave.1)
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | if (ENABLE_BOW_DOCS)
 | ||
|  | 	set (HTML_BGCOLOUR "white")
 | ||
|  | 	set (HTML_FGCOLOUR "black")
 | ||
|  | else ()
 | ||
|  | 	set (HTML_BGCOLOUR "black")
 | ||
|  | 	set (HTML_FGCOLOUR "white")
 | ||
|  | endif ()
 | ||
|  | set (dist_doc_DATA | ||
|  | 	docs/index.md
 | ||
|  | 	docs/libsndfile.jpg
 | ||
|  | 	docs/libsndfile.css
 | ||
|  | 	docs/print.css
 | ||
|  | 	docs/api.md
 | ||
|  | 	docs/command.md
 | ||
|  | 	docs/bugs.md
 | ||
|  | 	docs/formats.md
 | ||
|  | 	docs/sndfile_info.md
 | ||
|  | 	docs/new_file_type_howto.md
 | ||
|  | 	docs/win32.md
 | ||
|  | 	docs/FAQ.md
 | ||
|  | 	docs/lists.md
 | ||
|  | 	docs/embedded_files.md
 | ||
|  | 	docs/octave.md
 | ||
|  | 	docs/tutorial.md
 | ||
|  | 	)
 | ||
|  | install (FILES ${dist_doc_DATA} DESTINATION ${CMAKE_INSTALL_DOCDIR})
 | ||
|  | 
 | ||
|  | if (INSTALL_PKGCONFIG_MODULE)
 | ||
|  | 	install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 | ||
|  | endif ()
 | ||
|  | 
 | ||
|  | #
 | ||
|  | # Testing
 | ||
|  | #
 | ||
|  | 
 | ||
|  | if (BUILD_TESTING)
 | ||
|  | 
 | ||
|  | 	enable_testing ()
 | ||
|  | 
 | ||
|  | 	include (CMakeAutoGen)
 | ||
|  | 
 | ||
|  | 	# 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_include_directories (test_utils | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries(test_utils PRIVATE sndfile)
 | ||
|  | 
 | ||
|  | 	### test_main
 | ||
|  | 
 | ||
|  | 	add_executable (test_main | ||
|  | 		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
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (test_main | ||
|  | 		PUBLIC
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/tests
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (test_main PRIVATE sndfile)
 | ||
|  | 	if (MSVC)
 | ||
|  | 		target_compile_definitions (test_main PRIVATE _USE_MATH_DEFINES)
 | ||
|  | 	endif ()
 | ||
|  | 	add_test (test_main test_main)
 | ||
|  | 
 | ||
|  | 	### sfversion_test
 | ||
|  | 
 | ||
|  | 	add_executable (sfversion tests/sfversion.c)
 | ||
|  | 	target_include_directories (sfversion | ||
|  | 		PRIVATE
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (sfversion sndfile)
 | ||
|  | 	add_test (sfversion sfversion)
 | ||
|  | 	set_tests_properties (sfversion PROPERTIES | ||
|  | 		PASS_REGULAR_EXPRESSION "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_FULL}"
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	### error_test
 | ||
|  | 
 | ||
|  | 	add_executable (error_test tests/error_test.c)
 | ||
|  | 	target_link_libraries (error_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (error_test error_test)
 | ||
|  | 
 | ||
|  | 	### ulaw_test
 | ||
|  | 	add_executable (ulaw_test tests/ulaw_test.c)
 | ||
|  | 	target_link_libraries (ulaw_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (ulaw_test ulaw_test)
 | ||
|  | 
 | ||
|  | 	### alaw_test
 | ||
|  | 	add_executable (alaw_test tests/alaw_test.c)
 | ||
|  | 	target_link_libraries (alaw_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (alaw_test alaw_test)
 | ||
|  | 
 | ||
|  | 	### dwvw_test
 | ||
|  | 
 | ||
|  | 	add_executable (dwvw_test tests/dwvw_test.c)
 | ||
|  | 	target_link_libraries (dwvw_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (dwvw_test dwvw_test)
 | ||
|  | 
 | ||
|  | 	### command_test
 | ||
|  | 
 | ||
|  | 	add_executable (command_test tests/command_test.c)
 | ||
|  | 	target_link_libraries (command_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (command_test command_test all)
 | ||
|  | 
 | ||
|  | 	### floating_point_test
 | ||
|  | 
 | ||
|  | 	add_executable (floating_point_test | ||
|  | 		tests/dft_cmp.c
 | ||
|  | 		tests/floating_point_test.c
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (floating_point_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (floating_point_test PRIVATE tests)
 | ||
|  | 	add_test (floating_point_test floating_point_test)
 | ||
|  | 
 | ||
|  | 	### checksum_test
 | ||
|  | 
 | ||
|  | 	add_executable (checksum_test tests/checksum_test.c)
 | ||
|  | 	target_link_libraries (checksum_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (checksum_test checksum_test)
 | ||
|  | 
 | ||
|  | 	### scale_clip_test
 | ||
|  | 
 | ||
|  | 	add_executable (scale_clip_test tests/scale_clip_test.c)
 | ||
|  | 	target_link_libraries (scale_clip_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (scale_clip_test scale_clip_test)
 | ||
|  | 
 | ||
|  | 	### headerless_test
 | ||
|  | 
 | ||
|  | 	add_executable (headerless_test tests/headerless_test.c)
 | ||
|  | 	target_link_libraries (headerless_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (headerless_test headerless_test)
 | ||
|  | 
 | ||
|  | 	### rdwr_test
 | ||
|  | 
 | ||
|  | 	add_executable (rdwr_test tests/rdwr_test.c)
 | ||
|  | 	target_link_libraries (rdwr_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (rdwr_test rdwr_test)
 | ||
|  | 
 | ||
|  | 	### locale_test
 | ||
|  | 
 | ||
|  | 	add_executable (locale_test tests/locale_test.c)
 | ||
|  | 	target_link_libraries (locale_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (locale_test locale_test)
 | ||
|  | 
 | ||
|  | 	### win32_ordinal_test
 | ||
|  | 
 | ||
|  | # Disabled because we cannot test with shared sndfile library
 | ||
|  | #	if (WIN32 AND BUILD_SHARED_LIBS)
 | ||
|  | #		add_executable (win32_ordinal_test tests/win32_ordinal_test.c)
 | ||
|  | #		target_link_libraries (win32_ordinal_test PRIVATE sndfile test_utils)
 | ||
|  | #		add_test (win32_ordinal_test win32_ordinal_test)
 | ||
|  | #	endif ()
 | ||
|  | 
 | ||
|  | 	### cpp_test
 | ||
|  | 
 | ||
|  | 	add_executable (cpp_test tests/cpp_test.cc)
 | ||
|  | 	target_link_libraries (cpp_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (cpp_test cpp_test)
 | ||
|  | 
 | ||
|  | 	### external_libs_test
 | ||
|  | 
 | ||
|  | 	add_executable (external_libs_test tests/external_libs_test.c)
 | ||
|  | 	target_link_libraries (external_libs_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (external_libs_test external_libs_test)
 | ||
|  | 
 | ||
|  | 	### format_check_test
 | ||
|  | 
 | ||
|  | 	add_executable (format_check_test tests/format_check_test.c)
 | ||
|  | 	target_link_libraries (format_check_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (format_check_test format_check_test)
 | ||
|  | 
 | ||
|  | 	### channel_test
 | ||
|  | 
 | ||
|  | 	add_executable (channel_test tests/channel_test.c)
 | ||
|  | 	target_link_libraries (channel_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (channel_test channel_test)
 | ||
|  | 
 | ||
|  | 	### pcm_test
 | ||
|  | 
 | ||
|  | 	add_executable (pcm_test tests/pcm_test.c)
 | ||
|  | 	target_link_libraries (pcm_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	add_test (pcm_test pcm_test)
 | ||
|  | 
 | ||
|  | 	### common test executables
 | ||
|  | 
 | ||
|  | 	add_executable (write_read_test | ||
|  | 		tests/generate.c
 | ||
|  | 		tests/write_read_test.c
 | ||
|  | 	)
 | ||
|  | 	target_link_libraries (write_read_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	target_include_directories (write_read_test PRIVATE tests)
 | ||
|  | 
 | ||
|  | 	add_executable (lossy_comp_test tests/lossy_comp_test.c)
 | ||
|  | 	target_link_libraries (lossy_comp_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (peak_chunk_test tests/peak_chunk_test.c)
 | ||
|  | 	target_link_libraries (peak_chunk_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (header_test tests/header_test.c)
 | ||
|  | 	target_link_libraries (header_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (misc_test tests/misc_test.c)
 | ||
|  | 	target_link_libraries (misc_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (string_test tests/string_test.c)
 | ||
|  | 	target_link_libraries (string_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (multi_file_test tests/multi_file_test.c)
 | ||
|  | 	target_link_libraries (multi_file_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (aiff_rw_test tests/aiff_rw_test.c)
 | ||
|  | 	target_link_libraries (aiff_rw_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (chunk_test tests/chunk_test.c)
 | ||
|  | 	target_link_libraries (chunk_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (long_read_write_test tests/long_read_write_test.c)
 | ||
|  | 	target_link_libraries (long_read_write_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (raw_test tests/raw_test.c)
 | ||
|  | 	target_link_libraries (raw_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (compression_size_test tests/compression_size_test.c)
 | ||
|  | 	target_link_libraries (compression_size_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (ogg_test tests/ogg_test.c)
 | ||
|  | 	target_link_libraries (ogg_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (ogg_opus_test tests/ogg_opus_test.c)
 | ||
|  | 	target_link_libraries (ogg_opus_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (mpeg_test tests/mpeg_test.c)
 | ||
|  | 	target_link_libraries (mpeg_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (stdin_test tests/stdin_test.c)
 | ||
|  | 	target_link_libraries (stdin_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	set_target_properties (stdin_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests")
 | ||
|  | 
 | ||
|  | 	add_executable (stdout_test tests/stdout_test.c)
 | ||
|  | 	target_link_libraries (stdout_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	set_target_properties (stdout_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests")
 | ||
|  | 
 | ||
|  | 	add_executable (stdio_test tests/stdio_test.c)
 | ||
|  | 	target_link_libraries (stdio_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (pipe_test tests/pipe_test.c)
 | ||
|  | 	target_link_libraries (pipe_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	add_executable (virtual_io_test tests/virtual_io_test.c)
 | ||
|  | 	target_link_libraries (virtual_io_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			test_utils
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 
 | ||
|  | 	### g72x_test
 | ||
|  | 
 | ||
|  | 	add_executable (g72x_test src/G72x/g72x_test.c)
 | ||
|  | 	target_include_directories (g72x_test | ||
|  | 		PRIVATE
 | ||
|  | 			src
 | ||
|  | 			${CMAKE_CURRENT_BINARY_DIR}/src
 | ||
|  | 		)
 | ||
|  | 	target_link_libraries (g72x_test | ||
|  | 		PRIVATE
 | ||
|  | 			sndfile
 | ||
|  | 			$<$<BOOL:${LIBM_REQUIRED}>:m>
 | ||
|  | 		)
 | ||
|  | 	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 (lossy_comp_test_wav_nmsadpcm lossy_comp_test wav_nmsadpcm)
 | ||
|  | 	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)
 | ||
|  | 
 | ||
|  | 	### opus-tests ###
 | ||
|  | 	add_test (ogg_opus_test ogg_opus_test)
 | ||
|  | 	add_test (compression_size_test_opus compression_size_test opus)
 | ||
|  | 	add_test (lossy_comp_test_ogg_opus lossy_comp_test ogg_opus)
 | ||
|  | 	add_test (string_test_opus string_test opus)
 | ||
|  | 
 | ||
|  | 	### mpeg-tests ###
 | ||
|  | 	add_test (mpeg_test mpeg_test)
 | ||
|  | 	add_test (compression_size_test_mpeg compression_size_test mpeg)
 | ||
|  | 
 | ||
|  | 	### 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 ()
 | ||
|  | 
 | ||
|  | if (ENABLE_CPACK)
 | ||
|  | 	if ((NOT CPACK_PACKAGE_VERSION) AND CPACK_PACKAGE_VERSION_STAGE)
 | ||
|  | 		set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_FULL}")
 | ||
|  | 	endif ()
 | ||
|  | 	include (CPack)
 | ||
|  | endif ()
 |