diff options
| author | pepper <peppersclothescult@gmail.com> | 2015-01-10 21:32:32 -0800 |
|---|---|---|
| committer | pepper <peppersclothescult@gmail.com> | 2015-01-10 21:32:32 -0800 |
| commit | d53fa8a169832563c62262078b8d2ffe5cab8473 (patch) | |
| tree | b911d06d357d009c976709780f10e92ce915228a /vendor/CMakeLists.txt | |
first
Diffstat (limited to 'vendor/CMakeLists.txt')
| -rw-r--r-- | vendor/CMakeLists.txt | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt new file mode 100644 index 0000000..458d0dd --- /dev/null +++ b/vendor/CMakeLists.txt @@ -0,0 +1,298 @@ +cmake_minimum_required(VERSION 2.8.11) +project(MrsWatsonVendor) + +include(${cmake_SCRIPTS_DIR}/ConfigureTarget.cmake) + +# The some of third-party libraries under the vendor directory are built with +# autoconf (ie, ./configure scripts), which can be a bit tricky to integrate +# with CMake, even with the ExternalProject module (and not to mention on +# Windows, where mixing autoconf and VS builds is a nightmare in the making). +# +# So instead, we build these libraries via CMake, which adds a bit of +# maintainence to update but makes the build procedure much easier. The process +# of updating a new library is as such: +# +# 1. Update from upstream in teragonaudio's git fork/mirror of the repo +# 2. Bump submodule in project +# 3. Refresh file list below +# 4. Comment out any ignored files +# 5. Re-run ./configure +# 6. Copy the generated config.h file to the platform-specific directory +# + +# audiofile #################################################### + +# Configured with: ./configure --enable-flac --enable-static --disable-docs +# Also, the generated config.h file should be edited such that the definition +# of ENABLE_FLAC is not hardcoded to 0/1, but rather to USE_FLAC (the value +# set by our CMakeLists). + +if(WITH_AUDIOFILE) + set(audiofile_SOURCES + audiofile/libaudiofile/aes.cpp + audiofile/libaudiofile/af_vfs.cpp + audiofile/libaudiofile/AIFF.cpp + audiofile/libaudiofile/alac/ag_dec.c + audiofile/libaudiofile/alac/ag_enc.c + audiofile/libaudiofile/alac/ALACBitUtilities.c + audiofile/libaudiofile/alac/ALACDecoder.cpp + audiofile/libaudiofile/alac/ALACEncoder.cpp + audiofile/libaudiofile/alac/dp_dec.c + audiofile/libaudiofile/alac/dp_enc.c + audiofile/libaudiofile/alac/EndianPortable.c + audiofile/libaudiofile/alac/matrix_dec.c + audiofile/libaudiofile/alac/matrix_enc.c + audiofile/libaudiofile/AudioFormat.cpp + audiofile/libaudiofile/aupv.c + audiofile/libaudiofile/AVR.cpp + audiofile/libaudiofile/Buffer.cpp + audiofile/libaudiofile/CAF.cpp + audiofile/libaudiofile/compression.cpp + audiofile/libaudiofile/data.cpp + audiofile/libaudiofile/debug.cpp + audiofile/libaudiofile/error.c + audiofile/libaudiofile/extended.c + audiofile/libaudiofile/File.cpp + audiofile/libaudiofile/FileHandle.cpp + audiofile/libaudiofile/FLACFile.cpp + audiofile/libaudiofile/format.cpp + audiofile/libaudiofile/g711.c + audiofile/libaudiofile/IFF.cpp + audiofile/libaudiofile/Instrument.cpp + audiofile/libaudiofile/IRCAM.cpp + audiofile/libaudiofile/Loop.cpp + audiofile/libaudiofile/Marker.cpp + audiofile/libaudiofile/Miscellaneous.cpp + audiofile/libaudiofile/modules/ALAC.cpp + audiofile/libaudiofile/modules/BlockCodec.cpp + audiofile/libaudiofile/modules/FileModule.cpp + audiofile/libaudiofile/modules/FLAC.cpp + audiofile/libaudiofile/modules/G711.cpp + audiofile/libaudiofile/modules/IMA.cpp + audiofile/libaudiofile/modules/Module.cpp + audiofile/libaudiofile/modules/ModuleState.cpp + audiofile/libaudiofile/modules/MSADPCM.cpp + audiofile/libaudiofile/modules/PCM.cpp + audiofile/libaudiofile/modules/RebufferModule.cpp + audiofile/libaudiofile/modules/SimpleModule.cpp + # audiofile/libaudiofile/modules/UT_RebufferModule.cpp (Ignored) + audiofile/libaudiofile/NeXT.cpp + audiofile/libaudiofile/NIST.cpp + audiofile/libaudiofile/openclose.cpp + audiofile/libaudiofile/PacketTable.cpp + audiofile/libaudiofile/pcm.cpp + audiofile/libaudiofile/query.cpp + audiofile/libaudiofile/Raw.cpp + audiofile/libaudiofile/SampleVision.cpp + audiofile/libaudiofile/Setup.cpp + audiofile/libaudiofile/Track.cpp + audiofile/libaudiofile/units.cpp + audiofile/libaudiofile/util.cpp + audiofile/libaudiofile/UUID.cpp + audiofile/libaudiofile/VOC.cpp + audiofile/libaudiofile/WAVE.cpp + ) + + set(audiofile_HEADERS + audiofile/libaudiofile/af_vfs.h + audiofile/libaudiofile/afinternal.h + audiofile/libaudiofile/AIFF.h + audiofile/libaudiofile/alac/aglib.h + audiofile/libaudiofile/alac/ALACAudioTypes.h + audiofile/libaudiofile/alac/ALACBitUtilities.h + audiofile/libaudiofile/alac/ALACDecoder.h + audiofile/libaudiofile/alac/ALACEncoder.h + audiofile/libaudiofile/alac/dplib.h + audiofile/libaudiofile/alac/EndianPortable.h + audiofile/libaudiofile/alac/matrixlib.h + audiofile/libaudiofile/audiofile.h + audiofile/libaudiofile/AudioFormat.h + audiofile/libaudiofile/aupvinternal.h + audiofile/libaudiofile/aupvlist.h + audiofile/libaudiofile/AVR.h + audiofile/libaudiofile/Buffer.h + audiofile/libaudiofile/byteorder.h + audiofile/libaudiofile/CAF.h + audiofile/libaudiofile/Compiler.h + audiofile/libaudiofile/compression.h + audiofile/libaudiofile/debug.h + audiofile/libaudiofile/error.h + audiofile/libaudiofile/extended.h + audiofile/libaudiofile/Features.h + audiofile/libaudiofile/File.h + audiofile/libaudiofile/FileHandle.h + audiofile/libaudiofile/FLACFile.h + audiofile/libaudiofile/g711.h + audiofile/libaudiofile/IFF.h + audiofile/libaudiofile/Instrument.h + audiofile/libaudiofile/IRCAM.h + audiofile/libaudiofile/Marker.h + audiofile/libaudiofile/modules/ALAC.h + audiofile/libaudiofile/modules/BlockCodec.h + audiofile/libaudiofile/modules/FileModule.h + audiofile/libaudiofile/modules/FLAC.h + audiofile/libaudiofile/modules/G711.h + audiofile/libaudiofile/modules/IMA.h + audiofile/libaudiofile/modules/Module.h + audiofile/libaudiofile/modules/ModuleState.h + audiofile/libaudiofile/modules/MSADPCM.h + audiofile/libaudiofile/modules/PCM.h + audiofile/libaudiofile/modules/RebufferModule.h + audiofile/libaudiofile/modules/SimpleModule.h + audiofile/libaudiofile/NeXT.h + audiofile/libaudiofile/NIST.h + audiofile/libaudiofile/PacketTable.h + audiofile/libaudiofile/pcm.h + audiofile/libaudiofile/Raw.h + audiofile/libaudiofile/SampleVision.h + audiofile/libaudiofile/Setup.h + audiofile/libaudiofile/Shared.h + audiofile/libaudiofile/Tag.h + audiofile/libaudiofile/Track.h + audiofile/libaudiofile/units.h + audiofile/libaudiofile/util.h + audiofile/libaudiofile/UUID.h + audiofile/libaudiofile/VOC.h + audiofile/libaudiofile/WAVE.h + ) + + add_library(audiofile STATIC + ${audiofile_SOURCES} + ${audiofile_HEADERS} + audiofile-config/${PLATFORM_CONFIG_DIR}/config.h + ) + + add_library(audiofile64 STATIC + ${audiofile_SOURCES} + ${audiofile_HEADERS} + audiofile-config/${PLATFORM_CONFIG_DIR}/config.h + ) + + include_directories(audiofile/libaudiofile) + source_group(config audiofile-config/${PLATFORM_CONFIG_DIR}/config.h) + + target_include_directories(audiofile PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/audiofile-config/${PLATFORM_CONFIG_DIR} + ) + target_include_directories(audiofile64 PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/audiofile-config/${PLATFORM_CONFIG_DIR} + ) + + if(WITH_FLAC) + target_include_directories(audiofile PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include + ) + target_include_directories(audiofile64 PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include + ) + endif() + + configure_target(audiofile 32) + configure_target(audiofile64 64) +endif() + +# flac ######################################################### + +# Configured with: ./configure --disable-ogg --enable-static +# But on Mac: ./configure --disable-ogg --enable-static --disable-asm-optimizations +# (See https://github.com/Homebrew/homebrew/issues/34589) + +if(WITH_FLAC) + set(flac_SOURCES + flac/src/libFLAC/bitmath.c + flac/src/libFLAC/bitreader.c + flac/src/libFLAC/bitwriter.c + flac/src/libFLAC/cpu.c + flac/src/libFLAC/crc.c + flac/src/libFLAC/fixed.c + flac/src/libFLAC/fixed_intrin_sse2.c + flac/src/libFLAC/fixed_intrin_ssse3.c + flac/src/libFLAC/float.c + flac/src/libFLAC/format.c + flac/src/libFLAC/lpc.c + flac/src/libFLAC/lpc_intrin_avx2.c + flac/src/libFLAC/lpc_intrin_sse.c + flac/src/libFLAC/lpc_intrin_sse2.c + flac/src/libFLAC/lpc_intrin_sse41.c + flac/src/libFLAC/md5.c + flac/src/libFLAC/memory.c + flac/src/libFLAC/metadata_iterators.c + flac/src/libFLAC/metadata_object.c + # flac/src/libFLAC/ogg_decoder_aspect.c (Ignore) + # flac/src/libFLAC/ogg_encoder_aspect.c (Ignore) + # flac/src/libFLAC/ogg_helper.c (Ignore) + # flac/src/libFLAC/ogg_mapping.c (Ignore) + flac/src/libFLAC/stream_decoder.c + flac/src/libFLAC/stream_encoder.c + flac/src/libFLAC/stream_encoder_framing.c + flac/src/libFLAC/stream_encoder_intrin_avx2.c + flac/src/libFLAC/stream_encoder_intrin_sse2.c + flac/src/libFLAC/stream_encoder_intrin_ssse3.c + flac/src/libFLAC/window.c + ) + + set(flac++_SOURCES + flac/src/libFLAC++/metadata.cpp + flac/src/libFLAC++/stream_decoder.cpp + flac/src/libFLAC++/stream_encoder.cpp + ) + + set(flac_HEADERS + flac/include/FLAC/all.h + flac/include/FLAC/assert.h + flac/include/FLAC/callback.h + flac/include/FLAC/export.h + flac/include/FLAC/format.h + flac/include/FLAC/metadata.h + flac/include/FLAC/ordinals.h + flac/include/FLAC/stream_decoder.h + flac/include/FLAC/stream_encoder.h + ) + + set(flac++_HEADERS + flac/include/FLAC++/all.h + flac/include/FLAC++/decoder.h + flac/include/FLAC++/encoder.h + flac/include/FLAC++/export.h + flac/include/FLAC++/metadata.h + ) + + add_library(flac STATIC + ${flac_SOURCES} + ${flac++_SOURCES} + ${flac_HEADERS} + ${flac++_HEADERS} + flac-config/${PLATFORM_CONFIG_DIR}/config.h + ) + + add_library(flac64 STATIC + ${flac_SOURCES} + ${flac++_SOURCES} + ${flac_HEADERS} + ${flac++_HEADERS} + flac-config/${PLATFORM_CONFIG_DIR}/config.h + ) + + target_include_directories(flac PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include/FLAC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include/FLAC++ + ${CMAKE_CURRENT_SOURCE_DIR}/flac/src/libFLAC/include + ${CMAKE_CURRENT_SOURCE_DIR}/flac-config/${PLATFORM_CONFIG_DIR} + ) + target_include_directories(flac64 PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include/FLAC + ${CMAKE_CURRENT_SOURCE_DIR}/flac/include/FLAC++ + ${CMAKE_CURRENT_SOURCE_DIR}/flac/src/libFLAC/include + ${CMAKE_CURRENT_SOURCE_DIR}/flac-config/${PLATFORM_CONFIG_DIR} + ) + + source_group(config flac-config/${PLATFORM_CONFIG_DIR}/config.h) + + set_target_properties(flac PROPERTIES COMPILE_DEFINITIONS "HAVE_CONFIG_H=1") + set_target_properties(flac64 PROPERTIES COMPILE_DEFINITIONS "HAVE_CONFIG_H=1") + + configure_target(flac 32) + configure_target(flac64 64) +endif() |
