ref: 2c3c76cd093d2329faaf1f48b26fd992a54e6788
dir: /CMakeLists.txt/
cmake_minimum_required(VERSION 2.4) include(CheckIncludeFiles) include(CheckFunctionExists) include(CheckLibraryExists) macro(optional variable header library function source) check_include_files(${header} ${variable}1) if (${variable}1) check_library_exists(${library} ${function} "" ${variable}) if (${variable}) set(optional_srcs ${optional_srcs} ${source}) set(optional_libs ${optional_libs} ${library}) endif (${variable}) endif (${variable}1) endmacro(optional) macro(optional3 variable header library1 function1 library2 function2 library3 function3 source) check_include_files(${header} ${variable}1) if (${variable}1) check_library_exists(${library1} ${function1} "" ${variable}2) if (${variable}2) check_library_exists(${library2} ${function2} "" ${variable}3) if (${variable}3) check_library_exists(${library3} ${function3} "" ${variable}) if (${variable}) set(optional_srcs ${optional_srcs} ${source}) set(optional_libs ${optional_libs} ${library1} ${library2} ${library3}) endif (${variable}) endif (${variable}3) endif (${variable}2) endif (${variable}1) endmacro(optional3) project(sox) if(CMAKE_COMPILER_IS_GNUCC) add_definitions(-D_FORTIFY_SOURCE=2 -Wall -W -Wmissing-prototypes -Wstrict-prototypes -pedantic) endif(CMAKE_COMPILER_IS_GNUCC) include(TestBigEndian) check_include_files("byteswap.h" HAVE_BYTESWAP_H) check_include_files("inttypes.h" HAVE_INTTYPES_H) check_include_files("glob.h" HAVE_GLOB_H) check_include_files("io.h" HAVE_IO_H) #check_include_files("ltdl.h" HAVE_LTDL_H) # no plug-ins as yet check_include_files("stdint.h" HAVE_STDINT_H) check_include_files("string.h" HAVE_STRING_H) check_include_files("strings.h" HAVE_STRINGS_H) check_include_files("sys/time.h" HAVE_SYS_TIME_H) check_include_files("sys/timeb.h" HAVE_SYS_TIMEB_H) check_include_files("sys/types.h" HAVE_SYS_TYPES_H) check_include_files("sys/utsname.h" HAVE_SYS_UTSNAME_H) check_include_files("termios.h" HAVE_TERMIOS_H) check_include_files("unistd.h" HAVE_UNISTD_H) check_function_exists("fmemopen" HAVE_FMEMOPEN) check_function_exists("fseeko" HAVE_FSEEKO) check_function_exists("gettimeofday" HAVE_GETTIMEOFDAY) check_function_exists("mkstemp" HAVE_MKSTEMP) check_function_exists("popen" HAVE_POPEN) check_function_exists("strcasecmp" HAVE_STRCASECMP) check_function_exists("strrstr" HAVE_STRRSTR) check_function_exists("vsnprintf" HAVE_VSNPRINTF) test_big_endian(WORDS_BIGENDIAN) optional(NEED_LIBM math.h m pow "") if(NEED_LIBM) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} -lm) endif(NEED_LIBM) optional(EXTERNAL_GSM gsm/gsm.h gsm gsm_create "") optional(EXTERNAL_LPC10 lpc10/lpc10.h lpc10 lpc10_create "") optional(HAVE_ALSA alsa/asoundlib.h asound snd_pcm_open alsa) optional(HAVE_AMRNB amrnb/sp_dec.h amrnb Decoder_Interface_init amr-nb) optional(HAVE_AMRWB amrwb/dec.h amrwb D_IF_init amr-wb) if(CMAKE_COMPILER_IS_GNUCC) optional(HAVE_OPENMP omp.h gomp omp_get_thread_num "") if(HAVE_OPENMP) add_definitions(-fopenmp) endif(HAVE_OPENMP) endif(CMAKE_COMPILER_IS_GNUCC) optional(HAVE_ID3TAG id3tag.h id3tag id3_file_open "") optional(HAVE_SNDIO CoreAudio/CoreAudio.h CoreAudio AudioHardwareGetProperty coreaudio) optional(HAVE_SNDIO sndio.h sndio sio_open sndio) optional(HAVE_AO ao/ao.h ao ao_play ao) optional(HAVE_FLAC FLAC/all.h FLAC FLAC__stream_encoder_new flac) optional(HAVE_MAD_H mad.h mad mad_stream_buffer mp3) optional(HAVE_LAME_LAME_H lame/lame.h mp3lame lame_init mp3) if (NOT HAVE_LAME_LAME_H) optional(HAVE_LAME_LAME_H lame.h mp3lame lame_init mp3) endif (NOT HAVE_LAME_LAME_H) optional(HAVE_MAGIC magic.h magic magic_open "") #optional(HAVE_OGG_SPEEX speex/speex.h speex speex_decoder_init speex) optional(HAVE_PNG png.h png png_set_rows spectrogram) optional(HAVE_PULSEAUDIO pulse/simple.h pulse-simple pa_simple_new pulseaudio) optional(HAVE_SNDFILE sndfile.h sndfile sf_open sndfile) optional(HAVE_SNDFILE sndfile.h sndfile sf_open fap) optional(HAVE_SNDFILE sndfile.h sndfile sf_open mat4) optional(HAVE_SNDFILE sndfile.h sndfile sf_open mat5) optional(HAVE_SNDFILE sndfile.h sndfile sf_open paf) optional(HAVE_SNDFILE sndfile.h sndfile sf_open pvf) optional(HAVE_SNDFILE sndfile.h sndfile sf_open sd2) optional(HAVE_SNDFILE sndfile.h sndfile sf_open w64) optional(HAVE_SNDFILE sndfile.h sndfile sf_open xi) optional(HAVE_SNDFILE_1_0_12 sndfile.h sndfile sf_open_virtual caf) optional(HAVE_SUN_AUDIOIO_H sun/audioio.h c ioctl sunaudio) if (NOT HAVE_SUN_AUDIOIO_H) optional(HAVE_SYS_AUDIOIO_H sys/audioio.h c ioctl sunaudio) endif (NOT HAVE_SUN_AUDIOIO_H) optional(HAVE_SYS_SOUNDCARD_H sys/soundcard.h c ioctl oss) if (NOT HAVE_SYS_SOUNDCARD_H) optional(HAVE_MACHINE_SOUNDCARD_H machine/soundcard.h ossaudio _oss_ioctl oss) endif (NOT HAVE_SYS_SOUNDCARD_H) optional3(HAVE_OGG_VORBIS vorbis/codec.h vorbis vorbis_analysis_headerout vorbisfile ov_clear vorbisenc vorbis_encode_init_vbr vorbis) optional3(HAVE_FFMPEG ffmpeg/avformat.h avformat av_open_input_file avutil av_rescale_q avcodec avcodec_decode_audio2 ffmpeg) optional(HAVE_WAVPACK wavpack/wavpack.h wavpack WavpackGetSampleRate wavpack) if (HAVE_LAME_LAME_H OR HAVE_MAD_H) set(HAVE_MP3 1) endif (HAVE_LAME_LAME_H OR HAVE_MAD_H) set(CMAKE_REQUIRED_LIBRARIES mp3lame m) check_function_exists("lame_set_VBR_quality" HAVE_LAME_SET_VBR_QUALITY) check_function_exists("id3tag_set_fieldvalue" HAVE_ID3TAG_SET_FIELDVALUE) if (HAVE_SUN_AUDIOIO_H OR HAVE_SYS_AUDIOIO_H) set(HAVE_SUN_AUDIO 1) endif (HAVE_SUN_AUDIOIO_H OR HAVE_SYS_AUDIOIO_H) if (HAVE_SYS_SOUNDCARD_H OR HAVE_MACHINE_SOUNDCARD_H) set(HAVE_OSS 1) endif (HAVE_SYS_SOUNDCARD_H OR HAVE_MACHINE_SOUNDCARD_H) configure_file(sox.pc.in sox.pc @ONLY) install_files(/lib/pkgconfig FILES sox.pc) subdirs(src) if (NOT EXTERNAL_GSM) add_subdirectory(libgsm) endif (NOT EXTERNAL_GSM) if (NOT EXTERNAL_LPC10) add_subdirectory(lpc10) endif (NOT EXTERNAL_LPC10)