1 cmake_minimum_required (VERSION 3.1..3.18)
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.
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.")
11 if (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
12 cmake_policy (SET CMP0091 NEW)
14 cmake_policy (SET CMP0091 OLD)
18 option (ENABLE_EXTERNAL_LIBS "Enable FLAC, Vorbis, and Opus codecs" ON)
19 if (ENABLE_EXTERNAL_LIBS)
20 list (APPEND VCPKG_MANIFEST_FEATURES "external-libs")
23 option (ENABLE_MPEG "Enable MPEG codecs" ON)
25 list (APPEND VCPKG_MANIFEST_FEATURES "mpeg")
28 option (ENABLE_EXPERIMENTAL "Enable experimental code" OFF)
29 if (ENABLE_EXPERIMENTAL)
30 list (APPEND VCPKG_MANIFEST_FEATURES "speex")
33 option (BUILD_REGTEST "Build regtest" OFF)
35 list (APPEND VCPKG_MANIFEST_FEATURES "regtest")
38 project(libsndfile VERSION 1.1.0)
44 set (CMAKE_C_STANDARD 99)
45 set (CMAKE_C_STANDARD_REQUIRED TRUE)
46 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
48 set (PACKAGE_NAME ${PROJECT_NAME})
49 set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
50 set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
51 set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
52 set (CPACK_PACKAGE_VERSION_STAGE "")
53 set (CPACK_PACKAGE_VERSION_FULL "${PROJECT_VERSION}${CPACK_PACKAGE_VERSION_STAGE}")
56 # System-wide includes
59 include (GNUInstallDirs)
60 include (FeatureSummary)
61 include (CMakeDependentOption)
63 include (CheckCCompilerFlag)
69 option (BUILD_SHARED_LIBS "Build shared libraries" OFF)
70 if (BUILD_SHARED_LIBS AND BUILD_TESTING)
71 set (BUILD_TESTING OFF)
72 message ("Build testing required static libraries. To prevent build errors BUILD_TESTING disabled.")
74 option (BUILD_PROGRAMS "Build programs" ON)
75 option (BUILD_EXAMPLES "Build examples" ON)
76 option (ENABLE_CPACK "Enable CPack support" ON)
77 option (ENABLE_BOW_DOCS "Enable black-on-white html docs" OFF)
78 if (MSVC AND (DEFINED ENABLE_STATIC_RUNTIME))
79 option (ENABLE_STATIC_RUNTIME "Enable static runtime" ${ENABLE_STATIC_RUNTIME})
81 option (ENABLE_STATIC_RUNTIME "Enable static runtime" OFF)
83 option (ENABLE_PACKAGE_CONFIG "Generate and install package config file" ON)
84 option (INSTALL_PKGCONFIG_MODULE "Generate and install pkg-config module" ON)
86 list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
87 if (CMAKE_VERSION VERSION_LESS 3.14)
88 list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/sqlite")
95 include(SndFileChecks)
97 if (ENABLE_EXTERNAL_LIBS AND NOT (Vorbis_FOUND OR FLAC_FOUND OR OPUS_FOUND))
98 set (ENABLE_EXTERNAL_LIBS OFF)
100 if(ENABLE_MPEG AND (NOT HAVE_MPEG_LIBS))
101 set (ENABLE_MPEG OFF)
103 if (BUILD_REGTEST AND (NOT SQLITE3_FOUND))
104 set (BUILD_REGTEST OFF)
107 cmake_dependent_option (ENABLE_CPU_CLIP "Enable tricky cpu specific clipper" ON "CPU_CLIPS_POSITIVE;CPU_CLIPS_NEGATIVE" OFF)
108 if (NOT ENABLE_CPU_CLIP)
109 set (CPU_CLIPS_POSITIVE FALSE)
110 set (CPU_CLIPS_NEGATIVE FALSE)
112 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)
113 cmake_dependent_option (INSTALL_MANPAGES "Install man pages for programs" ON "BUILD_PROGRAMS" OFF)
117 check_c_compiler_flag (-msse2 HAVE_MSSE2_COMPILER_FLAG)
118 if (HAVE_MSSE2_COMPILER_FLAG)
119 cmake_dependent_option (ENABLE_SSE2 "Add SSE2 compiler flag" ON "HAVE_MSSE2_COMPILER_FLAG" OFF)
124 add_compile_options (-msse2)
127 set (HAVE_EXTERNAL_XIPH_LIBS ${ENABLE_EXTERNAL_LIBS})
128 set (HAVE_SQLITE3 ${BUILD_REGTEST})
129 set (HAVE_ALSA_ASOUNDLIB_H ${ALSA_FOUND})
130 set (HAVE_SNDIO_H ${SNDIO_FOUND})
132 set (ENABLE_EXPERIMENTAL_CODE ${ENABLE_EXPERIMENTAL})
133 set (HAVE_MPEG ${ENABLE_MPEG})
134 set (HAVE_SPEEX ${ENABLE_EXPERIMENTAL})
136 add_feature_info (BUILD_SHARED_LIBS BUILD_SHARED_LIBS "build shared libraries")
137 add_feature_info (ENABLE_EXTERNAL_LIBS ENABLE_EXTERNAL_LIBS "enable FLAC, Vorbis, and Opus codecs")
138 add_feature_info (ENABLE_MPEG ENABLE_MPEG "enable MPEG audio (including mp3) codecs")
139 add_feature_info (ENABLE_EXPERIMENTAL ENABLE_EXPERIMENTAL "enable experimental code")
140 add_feature_info (BUILD_TESTING BUILD_TESTING "build tests")
141 add_feature_info (BUILD_REGTEST BUILD_REGTEST "build regtest")
142 add_feature_info (ENABLE_CPACK ENABLE_CPACK "enable CPack support")
143 add_feature_info (ENABLE_CPU_CLIP ENABLE_CPU_CLIP "Enable tricky cpu specific clipper")
144 add_feature_info (ENABLE_BOW_DOCS ENABLE_BOW_DOCS "enable black-on-white html docs")
145 add_feature_info (ENABLE_PACKAGE_CONFIG ENABLE_PACKAGE_CONFIG "generate and install package config file")
146 add_feature_info (INSTALL_PKGCONFIG_MODULE INSTALL_PKGCONFIG_MODULE "generate and install pkg-config module")
147 add_feature_info (INSTALL_MANPAGES INSTALL_MANPAGES "install man pages for programs")
148 if (WIN32 AND BUILD_SHARED_LIBS)
149 add_feature_info (ENABLE_COMPATIBLE_LIBSNDFILE_NAME ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise")
152 if (HAVE_MSSE2_COMPILER_FLAG)
153 add_feature_info (ENABLE_SSE2 ENABLE_SSE2 "add SSE2 compiler flag")
159 set_package_properties (Ogg PROPERTIES
161 URL "www.xiph.org/ogg/"
162 DESCRIPTION "library for manipulating ogg bitstreams"
163 PURPOSE "Required to enable Vorbis, Speex, and Opus support"
165 set_package_properties (Vorbis PROPERTIES
167 URL "www.vorbis.com/"
168 DESCRIPTION "open source lossy audio codec"
169 PURPOSE "Enables Vorbis support"
171 set_package_properties (FLAC PROPERTIES
173 URL "www.xiph.org/flac/"
174 DESCRIPTION "Free Lossless Audio Codec Library"
175 PURPOSE "Enables FLAC support"
177 set_package_properties (Lame PROPERTIES
179 URL "https://lame.sourceforge.io/"
180 DESCRIPTION "High quality MPEG Audio Layer III (MP3) encoder"
181 PURPOSE "Enables MPEG layer III (MP3) writing support"
183 set_package_properties (MPG123 PROPERTIES
185 URL "https://www.mpg123.de/"
186 DESCRIPTION "MPEG Audio Layer I/II/III decoder"
187 PURPOSE "Enables MPEG Audio reading support"
189 set_package_properties(Opus PROPERTIES
191 URL "www.opus-codec.org/"
192 DESCRIPTION "Standardized open source low-latency fullband codec"
193 PURPOSE "Enables experimental Opus support"
195 set_package_properties(Speex PROPERTIES TYPE OPTIONAL
197 DESCRIPTION "an audio codec tuned for speech"
198 PURPOSE "Enables experemental Speex support"
200 set_package_properties (SQLite3 PROPERTIES
202 URL "www.sqlite.org/"
203 DESCRIPTION "light weight SQL database engine."
204 PURPOSE "Enables regtest"
206 if (BUILD_SHARED_LIBS)
207 set_package_properties (PythonInterp PROPERTIES
209 URL "www.python.org/"
210 DESCRIPTION "Python is a widely used high-level programming language."
211 PURPOSE "Required to build shared libraries"
215 feature_summary (WHAT ALL)
218 # Setup configuration
221 configure_file (src/config.h.cmake src/config.h)
223 configure_file (include/sndfile.h.in include/sndfile.h)
225 if (INSTALL_PKGCONFIG_MODULE)
227 set (prefix ${CMAKE_INSTALL_PREFIX})
228 set (exec_prefix "\$\{prefix\}")
229 set (libdir "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}")
230 set (includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}")
231 set (VERSION ${PROJECT_VERSION})
232 if (ENABLE_EXTERNAL_LIBS)
233 set (EXTERNAL_XIPH_REQUIRE "flac ogg vorbis vorbisenc opus")
234 if (ENABLE_EXPERIMENTAL)
235 set (EXTERNAL_XIPH_REQUIRE "${EXTERNAL_XIPH_REQUIRE} speex")
239 set (EXTERNAL_MPEG_REQUIRE "libmpg123")
240 get_filename_component(LAME_WE ${LAME_LIBRARY} NAME_WE)
241 if (LAME_HIP_LIBRARY)
242 get_filename_component(LAME_HIP_WE ${LAME_HIP_LIBRARY} NAME_WE)
244 if (CMAKE_IMPORT_LIBRARY_PREFIX)
245 string (REGEX REPLACE "^${CMAKE_IMPORT_LIBRARY_PREFIX}" "" LAME_WE_NO_PREFIX ${LAME_WE})
246 if (LAME_HIP_LIBRARY)
247 string (REGEX REPLACE "^${CMAKE_IMPORT_LIBRARY_PREFIX}" "" LAME_HIP_WE_NO_PREFIX ${LAME_HIP_WE})
250 set (EXTERNAL_MPEG_LIBS "-l${LAME_WE_NO_PREFIX}")
251 if (LAME_HIP_LIBRARY)
252 set (EXTERNAL_MPEG_LIBS "${MPEG_LIBS} -l${LAME_HIP_WE}")
256 configure_file (sndfile.pc.in sndfile.pc @ONLY)
264 # Public libsndfile headers
267 ${CMAKE_CURRENT_BINARY_DIR}/include/sndfile.h
271 # libsndfile static library
308 $<$<BOOL:${WIN32}>:src/windows.c>
352 src/GSM610/gsm610_priv.h
356 src/GSM610/gsm_create.c
357 src/GSM610/gsm_decode.c
358 src/GSM610/gsm_destroy.c
359 src/GSM610/gsm_encode.c
360 src/GSM610/gsm_option.c
361 src/GSM610/long_term.c
363 src/GSM610/preprocess.c
365 src/GSM610/short_term.c
374 src/ALAC/ALACAudioTypes.h
375 src/ALAC/ALACBitUtilities.h
376 src/ALAC/EndianPortable.h
380 src/ALAC/alac_codec.h
382 src/ALAC/ALACBitUtilities.c
387 src/ALAC/matrix_dec.c
388 src/ALAC/matrix_enc.c
389 src/ALAC/alac_decoder.c
390 src/ALAC/alac_encoder.c
392 ${CMAKE_CURRENT_BINARY_DIR}/src/config.h
395 add_library (SndFile::sndfile ALIAS sndfile)
397 target_include_directories (sndfile
399 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
400 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
401 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
404 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
406 target_link_libraries (sndfile
408 $<$<BOOL:${LIBM_REQUIRED}>:m>
409 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Vorbis::vorbisenc>
410 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:FLAC::FLAC>
411 $<$<AND:$<BOOL:${ENABLE_EXPERIMENTAL}>,$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>,$<BOOL:${HAVE_SPEEX}>>:Speex::Speex>
412 $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Opus::opus>
413 $<$<BOOL:${HAVE_MPEG}>:MPG123::libmpg123>
414 $<$<BOOL:${HAVE_MPEG}>:Lame::Lame>
416 set_target_properties (sndfile PROPERTIES
417 PUBLIC_HEADER "${sndfile_HDRS}"
420 if (ENABLE_COMPATIBLE_LIBSNDFILE_NAME)
422 set_target_properties (sndfile PROPERTIES
423 RUNTIME_OUTPUT_NAME "sndfile-1"
426 set_target_properties (sndfile PROPERTIES
427 RUNTIME_OUTPUT_NAME "libsndfile-1"
432 if (BUILD_SHARED_LIBS)
435 # ABI version of library.
439 # Read libtool version from `configure.ac` and set libsndfile ABI version:
441 # SNDFILE_ABI_VERSION_MAJOR
442 # SNDFILE_ABI_VERSION_MINOR
443 # SNDFILE_ABI_VERSION_PATCH
444 # SNDFILE_ABI_VERSION
446 # and Mach-O current and compatibility versions:
448 # SNDFILE_MACHO_CURRENT_VERSION
449 # SNDFILE_MACHO_COMPATIBILITY_VERSION
452 include (SetupABIVersions)
457 set (VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR})
460 set (WIN_RC_VERSION "${CPACK_PACKAGE_VERSION_MAJOR},${CPACK_PACKAGE_VERSION_MINOR},${CPACK_PACKAGE_VERSION_PATCH}")
461 set (CLEAN_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
462 set (PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
464 configure_file (src/version-metadata.rc.in src/version-metadata.rc @ONLY)
465 target_sources (sndfile PRIVATE ${PROJECT_BINARY_DIR}/src/version-metadata.rc)
469 set_target_properties (sndfile PROPERTIES
470 SOVERSION ${SNDFILE_ABI_VERSION_MAJOR}
471 VERSION ${SNDFILE_ABI_VERSION}
475 if (NOT (CMAKE_VERSION VERSION_LESS 3.17))
476 set_target_properties (sndfile PROPERTIES
477 MACHO_CURRENT_VERSION ${SNDFILE_MACHO_CURRENT_VERSION}
478 MACHO_COMPATIBILITY_VERSION ${SNDFILE_MACHO_COMPATIBILITY_VERSION}
481 message (FATAL_ERROR "Apple platform requires cmake >= 3.17 to build dylib.")
485 # Symbol files generation
488 set (SYMBOL_FILENAME "sndfile.def")
489 set (SYMBOL_OS "win32")
490 elseif ((CMAKE_SYSTEM_NAME MATCHES "Darwin") OR (CMAKE_SYSTEM_NAME MATCHES "Rhapsody"))
491 set (SYMBOL_FILENAME "Symbols.darwin")
492 set (SYMBOL_OS "darwin")
493 elseif (CMAKE_SYSTEM_NAME MATCHES "OS2")
494 set (SYMBOL_FILENAME "Symbols.os2")
495 set (SYMBOL_OS "os2")
497 set (SYMBOL_FILENAME "Symbols.gnu-binutils")
498 set (SYMBOL_OS "linux")
501 if (DEFINED SYMBOL_OS)
503 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}
504 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/create_symbols_file.py ${SYMBOL_OS} ${SNDFILE_ABI_VERSION} > ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}
505 COMMENT "Generating ${SYMBOL_FILENAME}..."
508 add_custom_target (GENFILES DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME})
509 if (SYMBOL_OS MATCHES "win32")
510 target_sources (sndfile
512 ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}
514 elseif (SYMBOL_OS MATCHES "darwin")
515 add_dependencies (sndfile GENFILES)
516 if (CMAKE_VERSION VERSION_LESS 3.13)
517 set_property (TARGET sndfile APPEND_STRING PROPERTY
518 LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
521 target_link_options (sndfile PRIVATE "LINKER:-exported_symbols_list,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
523 elseif (SYMBOL_OS MATCHES "os")
524 add_dependencies (sndfile GENFILES)
525 if (CMAKE_VERSION VERSION_LESS 3.13)
526 set_property (TARGET sndfile APPEND_STRING PROPERTY
527 LINK_FLAGS "-Wl,-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
530 target_link_options (sndfile PRIVATE "LINKER:-export-symbols ${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
533 add_dependencies (sndfile GENFILES)
534 if (CMAKE_VERSION VERSION_LESS 3.13)
535 set_property (TARGET sndfile APPEND_STRING PROPERTY
536 LINK_FLAGS "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}"
539 target_link_options (sndfile PRIVATE "LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/src/${SYMBOL_FILENAME}")
554 add_executable (sndfile-info
555 programs/sndfile-info.c
559 target_link_libraries (sndfile-info
562 $<$<BOOL:${LIBM_REQUIRED}>:m>
567 add_executable (sndfile-play
568 $<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c>
569 $<$<NOT:$<BOOL:${BEOS}>>:programs/common.c>
570 $<$<NOT:$<BOOL:${BEOS}>>:programs/sndfile-play.c>
571 $<$<BOOL:${BEOS}>:programs/sndfile-play-beos.cpp>
573 target_include_directories (sndfile-play
576 ${CMAKE_CURRENT_BINARY_DIR}/src
578 target_link_libraries (sndfile-play PRIVATE $<$<BOOL:${LIBM_REQUIRED}>:m>)
579 target_link_libraries (sndfile-play PRIVATE sndfile)
581 target_link_libraries(sndfile-play PRIVATE winmm)
582 # Maybe ALSA & Sndio are present in BeOS. They are not required
583 # so skip them anyway.
584 elseif ((NOT BEOS) AND ALSA_FOUND)
585 target_include_directories (sndfile-play PRIVATE ${ALSA_INCLUDE_DIRS})
586 target_link_libraries (sndfile-play PRIVATE ${ALSA_LIBRARIES})
587 elseif (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
588 target_link_libraries (sndfile-play PRIVATE Sndio::Sndio)
593 add_executable (sndfile-convert
594 programs/sndfile-convert.c
598 target_link_libraries (sndfile-convert PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
602 add_executable (sndfile-cmp
603 programs/sndfile-cmp.c
607 target_include_directories (sndfile-cmp
610 ${CMAKE_CURRENT_BINARY_DIR}/src
611 ${CMAKE_CURRENT_BINARY_DIR}/tests
613 target_link_libraries (sndfile-cmp PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
615 # sndfile-metadata-set
617 add_executable (sndfile-metadata-set
618 programs/sndfile-metadata-set.c
622 target_include_directories (sndfile-metadata-set
625 ${CMAKE_CURRENT_BINARY_DIR}/src
626 ${CMAKE_CURRENT_BINARY_DIR}/tests
628 target_link_libraries (sndfile-metadata-set PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
630 # sndfile-metadata-get
632 add_executable (sndfile-metadata-get
633 programs/sndfile-metadata-get.c
637 target_include_directories (sndfile-metadata-get
640 ${CMAKE_CURRENT_BINARY_DIR}/src
641 ${CMAKE_CURRENT_BINARY_DIR}/tests
643 target_link_libraries (sndfile-metadata-get PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
647 add_executable (sndfile-interleave
648 programs/sndfile-interleave.c
652 target_link_libraries (sndfile-interleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
654 # sndfile-deinterleave
656 add_executable (sndfile-deinterleave
657 programs/sndfile-deinterleave.c
661 target_link_libraries (sndfile-deinterleave PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
665 add_executable (sndfile-concat
666 programs/sndfile-concat.c
670 target_link_libraries (sndfile-concat PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
674 add_executable (sndfile-salvage
675 programs/sndfile-salvage.c
679 target_include_directories (sndfile-salvage
682 ${CMAKE_CURRENT_BINARY_DIR}/src
683 ${CMAKE_CURRENT_BINARY_DIR}/tests
685 target_link_libraries (sndfile-salvage PRIVATE sndfile $<$<BOOL:${LIBM_REQUIRED}>:m>)
687 set (SNDFILE_PROGRAM_TARGETS
700 set_target_properties(${SNDFILE_PROGRAM_TARGETS} PROPERTIES FOLDER Programs)
712 add_executable (sndfile-to-text examples/sndfile-to-text.c)
713 target_link_libraries (sndfile-to-text PRIVATE sndfile)
717 add_executable (sndfile-loopify examples/sndfile-loopify.c)
718 target_link_libraries (sndfile-loopify PRIVATE sndfile)
722 add_executable (make_sine examples/make_sine.c)
723 target_link_libraries (make_sine
726 $<$<BOOL:${LIBM_REQUIRED}>:m>
731 add_executable (sfprocess examples/sfprocess.c)
732 target_link_libraries (sfprocess
735 $<$<BOOL:${LIBM_REQUIRED}>:m>
740 add_executable (list_formats examples/list_formats.c)
741 target_link_libraries (list_formats
744 $<$<BOOL:${LIBM_REQUIRED}>:m>
749 add_executable (generate examples/generate.c)
750 target_link_libraries (generate PRIVATE sndfile)
754 add_executable (sndfilehandle examples/sndfilehandle.cc)
755 target_link_libraries (sndfilehandle PUBLIC sndfile)
757 set (SNDFILE_EXAMPLE_TARGETS
767 set_target_properties(${SNDFILE_EXAMPLE_TARGETS} PROPERTIES FOLDER Examples)
778 add_executable (sndfile-regtest
779 regtest/sndfile-regtest.c
783 target_include_directories (sndfile-regtest
786 ${CMAKE_CURRENT_BINARY_DIR}/src
787 ${CMAKE_CURRENT_BINARY_DIR}/tests
789 target_link_libraries(sndfile-regtest
793 $<$<BOOL:${LIBM_REQUIRED}>:m>
802 if (ENABLE_PACKAGE_CONFIG)
804 if (WIN32 AND (NOT MINGW) AND (NOT CYGWIN))
805 set (CMAKE_INSTALL_PACKAGEDIR cmake)
807 set (CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/SndFile)
810 install (TARGETS ${SNDFILE_PROGRAM_TARGETS}
811 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
814 install (TARGETS sndfile
815 EXPORT SndFileTargets
816 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
817 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
818 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
819 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
822 export (EXPORT SndFileTargets NAMESPACE SndFile:: FILE ${PROJECT_BINARY_DIR}/SndFileTargets.cmake)
824 include (CMakePackageConfigHelpers)
826 if (ENABLE_EXTERNAL_LIBS)
827 set (SndFile_WITH_EXTERNAL_LIBS 1)
829 set (SndFile_WITH_EXTERNAL_LIBS 0)
833 set (SndFile_WITH_MPEG 1)
835 set (SndFile_WITH_MPEG 0)
838 set (INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
839 configure_package_config_file(cmake/SndFileConfig.cmake.in SndFileConfig.cmake
840 INSTALL_DESTINATION ${PROJECT_BINARY_DIR}
841 INSTALL_PREFIX ${PROJECT_BINARY_DIR}
842 PATH_VARS INCLUDE_INSTALL_DIR
844 configure_package_config_file(cmake/SndFileConfig.cmake.in SndFileConfig2.cmake
845 INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
846 PATH_VARS INCLUDE_INSTALL_DIR
848 write_basic_package_version_file (SndFileConfigVersion.cmake COMPATIBILITY SameMajorVersion)
850 install(EXPORT SndFileTargets
852 DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
855 FILES ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfig2.cmake
856 RENAME SndFileConfig.cmake
857 DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
861 ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfigVersion.cmake
862 DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}
867 install (TARGETS sndfile ${sdnfile_PROGRAMS}
868 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
869 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
870 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
871 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
875 if (INSTALL_MANPAGES)
880 man/sndfile-convert.1
882 man/sndfile-metadata-get.1
884 man/sndfile-interleave.1
885 man/sndfile-salvage.1
887 install (FILES ${man_MANS} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
888 install (FILES man/sndfile-metadata-get.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-metadata-set.1)
889 install (FILES man/sndfile-interleave.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME sndfile-deinterleave.1)
893 set (HTML_BGCOLOUR "white")
894 set (HTML_FGCOLOUR "black")
896 set (HTML_BGCOLOUR "black")
897 set (HTML_FGCOLOUR "white")
909 docs/new_file_type_howto.md
913 docs/embedded_files.md
917 install (FILES ${dist_doc_DATA} DESTINATION ${CMAKE_INSTALL_DOCDIR})
919 if (INSTALL_PKGCONFIG_MODULE)
920 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
931 include (CMakeAutoGen)
933 # generate tests sources from autogen templates
934 lsf_autogen (tests benchmark c)
935 lsf_autogen (tests floating_point_test c)
936 lsf_autogen (tests header_test c)
937 lsf_autogen (tests pcm_test c)
938 lsf_autogen (tests pipe_test c)
939 lsf_autogen (tests rdwr_test c)
940 lsf_autogen (tests scale_clip_test c)
941 lsf_autogen (tests utils c h)
942 lsf_autogen (tests write_read_test c)
943 lsf_autogen (src test_endswap c)
945 # utils static library
946 add_library(test_utils STATIC tests/utils.c)
947 target_include_directories (test_utils
950 ${CMAKE_CURRENT_BINARY_DIR}/src
951 ${CMAKE_CURRENT_BINARY_DIR}/tests
953 target_link_libraries(test_utils PRIVATE sndfile)
957 add_executable (test_main
960 src/test_conversions.c
963 src/test_audio_detect.c
964 src/test_log_printf.c
966 src/test_ima_oki_adpcm.c
967 src/test_strncpy_crlf.c
968 src/test_broadcast_var.c
970 src/test_binheader_writef.c
973 target_include_directories (test_main
976 ${CMAKE_CURRENT_BINARY_DIR}/src
977 ${CMAKE_CURRENT_BINARY_DIR}/tests
979 target_link_libraries (test_main PRIVATE sndfile)
981 target_compile_definitions (test_main PRIVATE _USE_MATH_DEFINES)
983 add_test (test_main test_main)
987 add_executable (sfversion tests/sfversion.c)
988 target_include_directories (sfversion
991 ${CMAKE_CURRENT_BINARY_DIR}/src
993 target_link_libraries (sfversion sndfile)
994 add_test (sfversion sfversion)
995 set_tests_properties (sfversion PROPERTIES
996 PASS_REGULAR_EXPRESSION "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_FULL}"
1001 add_executable (error_test tests/error_test.c)
1002 target_link_libraries (error_test
1006 $<$<BOOL:${LIBM_REQUIRED}>:m>
1008 add_test (error_test error_test)
1011 add_executable (ulaw_test tests/ulaw_test.c)
1012 target_link_libraries (ulaw_test
1016 $<$<BOOL:${LIBM_REQUIRED}>:m>
1018 add_test (ulaw_test ulaw_test)
1021 add_executable (alaw_test tests/alaw_test.c)
1022 target_link_libraries (alaw_test
1026 $<$<BOOL:${LIBM_REQUIRED}>:m>
1028 add_test (alaw_test alaw_test)
1032 add_executable (dwvw_test tests/dwvw_test.c)
1033 target_link_libraries (dwvw_test
1037 $<$<BOOL:${LIBM_REQUIRED}>:m>
1039 add_test (dwvw_test dwvw_test)
1043 add_executable (command_test tests/command_test.c)
1044 target_link_libraries (command_test
1048 $<$<BOOL:${LIBM_REQUIRED}>:m>
1050 add_test (command_test command_test all)
1052 ### floating_point_test
1054 add_executable (floating_point_test
1056 tests/floating_point_test.c
1058 target_link_libraries (floating_point_test
1062 $<$<BOOL:${LIBM_REQUIRED}>:m>
1064 target_include_directories (floating_point_test PRIVATE tests)
1065 add_test (floating_point_test floating_point_test)
1069 add_executable (checksum_test tests/checksum_test.c)
1070 target_link_libraries (checksum_test
1074 $<$<BOOL:${LIBM_REQUIRED}>:m>
1076 add_test (checksum_test checksum_test)
1080 add_executable (scale_clip_test tests/scale_clip_test.c)
1081 target_link_libraries (scale_clip_test
1085 $<$<BOOL:${LIBM_REQUIRED}>:m>
1087 add_test (scale_clip_test scale_clip_test)
1091 add_executable (headerless_test tests/headerless_test.c)
1092 target_link_libraries (headerless_test
1096 $<$<BOOL:${LIBM_REQUIRED}>:m>
1098 add_test (headerless_test headerless_test)
1102 add_executable (rdwr_test tests/rdwr_test.c)
1103 target_link_libraries (rdwr_test
1107 $<$<BOOL:${LIBM_REQUIRED}>:m>
1109 add_test (rdwr_test rdwr_test)
1113 add_executable (locale_test tests/locale_test.c)
1114 target_link_libraries (locale_test
1118 $<$<BOOL:${LIBM_REQUIRED}>:m>
1120 add_test (locale_test locale_test)
1122 ### win32_ordinal_test
1124 # Disabled because we cannot test with shared sndfile library
1125 # if (WIN32 AND BUILD_SHARED_LIBS)
1126 # add_executable (win32_ordinal_test tests/win32_ordinal_test.c)
1127 # target_link_libraries (win32_ordinal_test PRIVATE sndfile test_utils)
1128 # add_test (win32_ordinal_test win32_ordinal_test)
1133 add_executable (cpp_test tests/cpp_test.cc)
1134 target_link_libraries (cpp_test
1138 $<$<BOOL:${LIBM_REQUIRED}>:m>
1140 add_test (cpp_test cpp_test)
1142 ### external_libs_test
1144 add_executable (external_libs_test tests/external_libs_test.c)
1145 target_link_libraries (external_libs_test
1149 $<$<BOOL:${LIBM_REQUIRED}>:m>
1151 add_test (external_libs_test external_libs_test)
1153 ### format_check_test
1155 add_executable (format_check_test tests/format_check_test.c)
1156 target_link_libraries (format_check_test
1160 $<$<BOOL:${LIBM_REQUIRED}>:m>
1162 add_test (format_check_test format_check_test)
1166 add_executable (channel_test tests/channel_test.c)
1167 target_link_libraries (channel_test
1171 $<$<BOOL:${LIBM_REQUIRED}>:m>
1173 add_test (channel_test channel_test)
1177 add_executable (pcm_test tests/pcm_test.c)
1178 target_link_libraries (pcm_test
1182 $<$<BOOL:${LIBM_REQUIRED}>:m>
1184 add_test (pcm_test pcm_test)
1186 ### common test executables
1188 add_executable (write_read_test
1190 tests/write_read_test.c
1192 target_link_libraries (write_read_test
1196 $<$<BOOL:${LIBM_REQUIRED}>:m>
1198 target_include_directories (write_read_test PRIVATE tests)
1200 add_executable (lossy_comp_test tests/lossy_comp_test.c)
1201 target_link_libraries (lossy_comp_test
1205 $<$<BOOL:${LIBM_REQUIRED}>:m>
1208 add_executable (peak_chunk_test tests/peak_chunk_test.c)
1209 target_link_libraries (peak_chunk_test
1213 $<$<BOOL:${LIBM_REQUIRED}>:m>
1216 add_executable (header_test tests/header_test.c)
1217 target_link_libraries (header_test
1221 $<$<BOOL:${LIBM_REQUIRED}>:m>
1224 add_executable (misc_test tests/misc_test.c)
1225 target_link_libraries (misc_test
1229 $<$<BOOL:${LIBM_REQUIRED}>:m>
1232 add_executable (string_test tests/string_test.c)
1233 target_link_libraries (string_test
1237 $<$<BOOL:${LIBM_REQUIRED}>:m>
1240 add_executable (multi_file_test tests/multi_file_test.c)
1241 target_link_libraries (multi_file_test
1245 $<$<BOOL:${LIBM_REQUIRED}>:m>
1248 add_executable (aiff_rw_test tests/aiff_rw_test.c)
1249 target_link_libraries (aiff_rw_test
1253 $<$<BOOL:${LIBM_REQUIRED}>:m>
1256 add_executable (chunk_test tests/chunk_test.c)
1257 target_link_libraries (chunk_test
1261 $<$<BOOL:${LIBM_REQUIRED}>:m>
1264 add_executable (long_read_write_test tests/long_read_write_test.c)
1265 target_link_libraries (long_read_write_test
1269 $<$<BOOL:${LIBM_REQUIRED}>:m>
1272 add_executable (raw_test tests/raw_test.c)
1273 target_link_libraries (raw_test
1277 $<$<BOOL:${LIBM_REQUIRED}>:m>
1280 add_executable (compression_size_test tests/compression_size_test.c)
1281 target_link_libraries (compression_size_test
1285 $<$<BOOL:${LIBM_REQUIRED}>:m>
1288 add_executable (ogg_test tests/ogg_test.c)
1289 target_link_libraries (ogg_test
1293 $<$<BOOL:${LIBM_REQUIRED}>:m>
1296 add_executable (ogg_opus_test tests/ogg_opus_test.c)
1297 target_link_libraries (ogg_opus_test
1301 $<$<BOOL:${LIBM_REQUIRED}>:m>
1304 add_executable (mpeg_test tests/mpeg_test.c)
1305 target_link_libraries (mpeg_test
1309 $<$<BOOL:${LIBM_REQUIRED}>:m>
1312 add_executable (stdin_test tests/stdin_test.c)
1313 target_link_libraries (stdin_test
1317 $<$<BOOL:${LIBM_REQUIRED}>:m>
1319 set_target_properties (stdin_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests")
1321 add_executable (stdout_test tests/stdout_test.c)
1322 target_link_libraries (stdout_test
1326 $<$<BOOL:${LIBM_REQUIRED}>:m>
1328 set_target_properties (stdout_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "tests")
1330 add_executable (stdio_test tests/stdio_test.c)
1331 target_link_libraries (stdio_test
1335 $<$<BOOL:${LIBM_REQUIRED}>:m>
1338 add_executable (pipe_test tests/pipe_test.c)
1339 target_link_libraries (pipe_test
1343 $<$<BOOL:${LIBM_REQUIRED}>:m>
1346 add_executable (virtual_io_test tests/virtual_io_test.c)
1347 target_link_libraries (virtual_io_test
1351 $<$<BOOL:${LIBM_REQUIRED}>:m>
1356 add_executable (g72x_test src/G72x/g72x_test.c)
1357 target_include_directories (g72x_test
1360 ${CMAKE_CURRENT_BINARY_DIR}/src
1362 target_link_libraries (g72x_test
1365 $<$<BOOL:${LIBM_REQUIRED}>:m>
1367 add_test (g72x_test g72x_test all)
1371 add_test (write_read_test_aiff write_read_test aiff)
1372 add_test (lossy_comp_test_aiff_ulaw lossy_comp_test aiff_ulaw)
1373 add_test (lossy_comp_test_aiff_alaw lossy_comp_test aiff_alaw)
1374 add_test (lossy_comp_test_aiff_gsm610 lossy_comp_test aiff_gsm610)
1375 add_test (peak_chunk_test_aiff peak_chunk_test aiff)
1376 add_test (header_test_aiff header_test aiff)
1377 add_test (misc_test_aiff misc_test aiff)
1378 add_test (string_test_aiff string_test aiff)
1379 add_test (multi_file_test_aiff multi_file_test aiff)
1380 add_test (aiff_rw_test aiff_rw_test)
1384 add_test (write_read_test_au write_read_test au)
1385 add_test (lossy_comp_test_au_ulaw lossy_comp_test au_ulaw)
1386 add_test (lossy_comp_test_au_alaw lossy_comp_test au_alaw)
1387 add_test (lossy_comp_test_au_g721 lossy_comp_test au_g721)
1388 add_test (lossy_comp_test_au_g723 lossy_comp_test au_g723)
1389 add_test (header_test_au header_test au)
1390 add_test (misc_test_au misc_test au)
1391 add_test (multi_file_test_au multi_file_test au)
1395 add_test (write_read_test_caf write_read_test caf)
1396 add_test (lossy_comp_test_caf_ulaw lossy_comp_test caf_ulaw)
1397 add_test (lossy_comp_test_caf_alaw lossy_comp_test caf_alaw)
1398 add_test (header_test_caf header_test caf)
1399 add_test (peak_chunk_test_caf peak_chunk_test caf)
1400 add_test (misc_test_caf misc_test caf)
1401 add_test (chunk_test_caf chunk_test caf)
1402 add_test (string_test_caf string_test caf)
1403 add_test (long_read_write_test_alac long_read_write_test alac)
1406 add_test (write_read_test_wav write_read_test wav)
1407 add_test (lossy_comp_test_wav_pcm lossy_comp_test wav_pcm)
1408 add_test (lossy_comp_test_wav_ima lossy_comp_test wav_ima)
1409 add_test (lossy_comp_test_wav_msadpcm lossy_comp_test wav_msadpcm)
1410 add_test (lossy_comp_test_wav_ulaw lossy_comp_test wav_ulaw)
1411 add_test (lossy_comp_test_wav_alaw lossy_comp_test wav_alaw)
1412 add_test (lossy_comp_test_wav_gsm610 lossy_comp_test wav_gsm610)
1413 add_test (lossy_comp_test_wav_g721 lossy_comp_test wav_g721)
1414 add_test (lossy_comp_test_wav_nmsadpcm lossy_comp_test wav_nmsadpcm)
1415 add_test (peak_chunk_test_wav peak_chunk_test wav)
1416 add_test (header_test_wav header_test wav)
1417 add_test (misc_test_wav misc_test wav)
1418 add_test (string_test_wav string_test wav)
1419 add_test (multi_file_test_wav multi_file_test wav)
1420 add_test (chunk_test_wav chunk_test wav)
1424 add_test (write_read_test_w64 write_read_test w64)
1425 add_test (lossy_comp_test_w64_ima lossy_comp_test w64_ima)
1426 add_test (lossy_comp_test_w64_msadpcm lossy_comp_test w64_msadpcm)
1427 add_test (lossy_comp_test_w64_ulaw lossy_comp_test w64_ulaw)
1428 add_test (lossy_comp_test_w64_alaw lossy_comp_test w64_alaw)
1429 add_test (lossy_comp_test_w64_gsm610 lossy_comp_test w64_gsm610)
1430 add_test (header_test_w64 header_test w64)
1431 add_test (misc_test_w64 misc_test w64)
1435 add_test (write_read_test_rf64 write_read_test rf64)
1436 add_test (header_test_rf64 header_test rf64)
1437 add_test (misc_test_rf64 misc_test rf64)
1438 add_test (string_test_rf64 string_test rf64)
1439 add_test (peak_chunk_test_rf64 peak_chunk_test rf64)
1440 add_test (chunk_test_rf64 chunk_test rf64)
1443 add_test (write_read_test_raw write_read_test raw)
1444 add_test (lossy_comp_test_raw_ulaw lossy_comp_test raw_ulaw)
1445 add_test (lossy_comp_test_raw_alaw lossy_comp_test raw_alaw)
1446 add_test (lossy_comp_test_raw_gsm610 lossy_comp_test raw_gsm610)
1447 add_test (lossy_comp_test_vox_adpcm lossy_comp_test vox_adpcm)
1448 add_test (raw_test raw_test)
1451 add_test (write_read_test_paf write_read_test paf)
1452 add_test (header_test_paf header_test paf)
1453 add_test (misc_test_paf misc_test paf)
1456 add_test (write_read_test_svx write_read_test svx)
1457 add_test (header_test_svx header_test svx)
1458 add_test (misc_test_svx misc_test svx)
1461 add_test (write_read_test_nist write_read_test nist)
1462 add_test (lossy_comp_test_nist_ulaw lossy_comp_test nist_ulaw)
1463 add_test (lossy_comp_test_nist_alaw lossy_comp_test nist_alaw)
1464 add_test (header_test_nist header_test nist)
1465 add_test (misc_test_nist misc_test nist)
1468 add_test (write_read_test_ircam write_read_test ircam)
1469 add_test (lossy_comp_test_ircam_ulaw lossy_comp_test ircam_ulaw)
1470 add_test (lossy_comp_test_ircam_alaw lossy_comp_test ircam_alaw)
1471 add_test (header_test_ircam header_test ircam)
1472 add_test (misc_test_ircam misc_test ircam)
1475 add_test (write_read_test_voc write_read_test voc)
1476 add_test (lossy_comp_test_voc_ulaw lossy_comp_test voc_ulaw)
1477 add_test (lossy_comp_test_voc_alaw lossy_comp_test voc_alaw)
1478 add_test (header_test_voc header_test voc)
1479 add_test (misc_test_voc misc_test voc)
1482 add_test (write_read_test_mat4 write_read_test mat4)
1483 add_test (header_test_mat4 header_test mat4)
1484 add_test (misc_test_mat4 misc_test mat4)
1487 add_test (write_read_test_mat5 write_read_test mat5)
1488 add_test (header_test_mat5 header_test mat5)
1489 add_test (misc_test_mat5 misc_test mat5)
1492 add_test (write_read_test_pvf write_read_test pvf)
1493 add_test (header_test_pvf header_test pvf)
1494 add_test (misc_test_pvf misc_test pvf)
1497 add_test (lossy_comp_test_xi_dpcm lossy_comp_test xi_dpcm)
1500 add_test (write_read_test_htk write_read_test htk)
1501 add_test (header_test_htk header_test htk)
1502 add_test (misc_test_htk misc_test htk)
1505 add_test (write_read_test_avr write_read_test avr)
1506 add_test (header_test_avr header_test avr)
1507 add_test (misc_test_avr misc_test avr)
1510 add_test (write_read_test_sds write_read_test sds)
1511 add_test (header_test_sds header_test sds)
1512 add_test (misc_test_sds misc_test sds)
1515 add_test (write_read_test_sd2 write_read_test sd2)
1518 add_test (lossy_comp_test_wve lossy_comp_test wve)
1521 add_test (write_read_test_mpc2k write_read_test mpc2k)
1522 add_test (header_test_mpc2k header_test mpc2k)
1523 add_test (misc_test_mpc2k misc_test mpc2k)
1526 add_test (write_read_test_flac write_read_test flac)
1527 add_test (compression_size_test_flac compression_size_test flac)
1528 add_test (string_test_flac string_test flac)
1531 add_test (ogg_test ogg_test)
1532 add_test (compression_size_test_vorbis compression_size_test vorbis)
1533 add_test (lossy_comp_test_ogg_vorbis lossy_comp_test ogg_vorbis)
1534 add_test (string_test_ogg string_test ogg)
1535 add_test (misc_test_ogg misc_test ogg)
1538 add_test (ogg_opus_test ogg_opus_test)
1539 add_test (compression_size_test_opus compression_size_test opus)
1540 add_test (lossy_comp_test_ogg_opus lossy_comp_test ogg_opus)
1541 add_test (string_test_opus string_test opus)
1544 add_test (mpeg_test mpeg_test)
1545 add_test (compression_size_test_mpeg compression_size_test mpeg)
1548 add_test (stdio_test stdio_test)
1549 add_test (pipe_test pipe_test)
1550 add_test (virtual_io_test virtual_io_test)
1552 set (SNDFILE_TEST_TARGETS
1581 long_read_write_test
1583 compression_size_test
1593 # if (WIN32 AND BUILD_SHARED_LIBS)
1594 # list (APPEND SNDFILE_TEST_TARGETS win32_ordinal_test)
1597 set_target_properties(${SNDFILE_TEST_TARGETS} PROPERTIES FOLDER Tests)
1602 if ((NOT CPACK_PACKAGE_VERSION) AND CPACK_PACKAGE_VERSION_STAGE)
1603 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_FULL}")