mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-23 05:47:55 +08:00
290 lines
6.5 KiB
CMake
290 lines
6.5 KiB
CMake
|
cmake_minimum_required(VERSION 3.9)
|
||
|
project(libopenmpt)
|
||
|
|
||
|
if(MSVC)
|
||
|
add_compile_options(
|
||
|
/W3 /wd4005 /wd4267 /wd4244 /wd4996 /wd410 /wd4018
|
||
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
|
||
|
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
find_package(ZLIB REQUIRED)
|
||
|
|
||
|
find_path(MPG123_INCLUDE_DIR NAMES mpg123.h)
|
||
|
find_library(MPG123_LIBRARY NAMES mpg123 libmpg123)
|
||
|
|
||
|
find_path(VORBIS_INCLUDE_DIR vorbis/vorbisfile.h)
|
||
|
find_path(OGG_INCLUDE_DIR ogg/ogg.h)
|
||
|
|
||
|
find_library(OGG_LIBRARY NAMES ogg)
|
||
|
find_library(VORBIS_LIBRARY NAMES vorbis)
|
||
|
find_library(VORBISFILE_LIBRARY NAMES vorbisfile)
|
||
|
|
||
|
find_path(FLAC_INCLUDE_DIR FLAC/all.h)
|
||
|
find_library(FLAC_LIBRARY NAMES FLAC flac)
|
||
|
|
||
|
find_path(PORTAUDIO_INCLUDE_DIR NAMES portaudio.h)
|
||
|
find_library(PORTAUDIO_LIBRARY NAMES portaudio)
|
||
|
|
||
|
|
||
|
|
||
|
set(
|
||
|
lib_headers
|
||
|
libopenmpt/libopenmpt.h
|
||
|
libopenmpt/libopenmpt.hpp
|
||
|
libopenmpt/libopenmpt_config.h
|
||
|
libopenmpt/libopenmpt_ext.h
|
||
|
libopenmpt/libopenmpt_ext.hpp
|
||
|
libopenmpt/libopenmpt_ext_impl.hpp
|
||
|
libopenmpt/libopenmpt_impl.hpp
|
||
|
libopenmpt/libopenmpt_internal.h
|
||
|
libopenmpt/libopenmpt_stream_callbacks_buffer.h
|
||
|
libopenmpt/libopenmpt_stream_callbacks_fd.h
|
||
|
libopenmpt/libopenmpt_stream_callbacks_file.h
|
||
|
libopenmpt/libopenmpt_version.h
|
||
|
)
|
||
|
|
||
|
|
||
|
include_directories(
|
||
|
.
|
||
|
build/svn_version
|
||
|
libopenmpt
|
||
|
common
|
||
|
soundbase
|
||
|
sounddsp
|
||
|
soundlib
|
||
|
openmpt123
|
||
|
${MPG123_INCLUDE_DIR}
|
||
|
${VORBIS_INCLUDE_DIR}
|
||
|
${OGG_INCLUDE_DIR}
|
||
|
${FLAC_INCLUDE_DIR}
|
||
|
${PORTAUDIO_INCLUDE_DIR}
|
||
|
)
|
||
|
|
||
|
set(
|
||
|
lib_sources
|
||
|
common/ComponentManager.cpp
|
||
|
common/FileReader.cpp
|
||
|
common/Logging.cpp
|
||
|
common/Profiler.cpp
|
||
|
common/misc_util.cpp
|
||
|
common/mptCPU.cpp
|
||
|
common/mptFileIO.cpp
|
||
|
common/mptIO.cpp
|
||
|
common/mptLibrary.cpp
|
||
|
common/mptOS.cpp
|
||
|
common/mptPathString.cpp
|
||
|
common/mptRandom.cpp
|
||
|
common/mptString.cpp
|
||
|
common/mptStringFormat.cpp
|
||
|
common/mptStringParse.cpp
|
||
|
common/mptTime.cpp
|
||
|
common/mptUUID.cpp
|
||
|
common/mptWine.cpp
|
||
|
common/serialization_utils.cpp
|
||
|
common/stdafx.cpp
|
||
|
common/typedefs.cpp
|
||
|
common/version.cpp
|
||
|
libopenmpt/libopenmpt_c.cpp
|
||
|
libopenmpt/libopenmpt_cxx.cpp
|
||
|
libopenmpt/libopenmpt_ext_impl.cpp
|
||
|
libopenmpt/libopenmpt_impl.cpp
|
||
|
sounddsp/AGC.cpp
|
||
|
sounddsp/DSP.cpp
|
||
|
sounddsp/EQ.cpp
|
||
|
sounddsp/Reverb.cpp
|
||
|
soundlib/AudioCriticalSection.cpp
|
||
|
soundlib/ContainerMMCMP.cpp
|
||
|
soundlib/ContainerPP20.cpp
|
||
|
soundlib/ContainerUMX.cpp
|
||
|
soundlib/ContainerXPK.cpp
|
||
|
soundlib/Dither.cpp
|
||
|
soundlib/Dlsbank.cpp
|
||
|
soundlib/Fastmix.cpp
|
||
|
soundlib/ITCompression.cpp
|
||
|
soundlib/ITTools.cpp
|
||
|
soundlib/InstrumentExtensions.cpp
|
||
|
soundlib/Load_669.cpp
|
||
|
soundlib/Load_amf.cpp
|
||
|
soundlib/Load_ams.cpp
|
||
|
soundlib/Load_dbm.cpp
|
||
|
soundlib/Load_digi.cpp
|
||
|
soundlib/Load_dmf.cpp
|
||
|
soundlib/Load_dsm.cpp
|
||
|
soundlib/Load_dtm.cpp
|
||
|
soundlib/Load_far.cpp
|
||
|
soundlib/Load_gdm.cpp
|
||
|
soundlib/Load_imf.cpp
|
||
|
soundlib/Load_it.cpp
|
||
|
soundlib/Load_itp.cpp
|
||
|
soundlib/Load_mdl.cpp
|
||
|
soundlib/Load_med.cpp
|
||
|
soundlib/Load_mid.cpp
|
||
|
soundlib/Load_mo3.cpp
|
||
|
soundlib/Load_mod.cpp
|
||
|
soundlib/Load_mt2.cpp
|
||
|
soundlib/Load_mtm.cpp
|
||
|
soundlib/Load_okt.cpp
|
||
|
soundlib/Load_plm.cpp
|
||
|
soundlib/Load_psm.cpp
|
||
|
soundlib/Load_ptm.cpp
|
||
|
soundlib/Load_s3m.cpp
|
||
|
soundlib/Load_sfx.cpp
|
||
|
soundlib/Load_stm.cpp
|
||
|
soundlib/Load_stp.cpp
|
||
|
soundlib/Load_uax.cpp
|
||
|
soundlib/Load_ult.cpp
|
||
|
soundlib/Load_wav.cpp
|
||
|
soundlib/Load_xm.cpp
|
||
|
soundlib/MIDIEvents.cpp
|
||
|
soundlib/MIDIMacros.cpp
|
||
|
soundlib/MPEGFrame.cpp
|
||
|
soundlib/Message.cpp
|
||
|
soundlib/MixFuncTable.cpp
|
||
|
soundlib/MixerLoops.cpp
|
||
|
soundlib/MixerSettings.cpp
|
||
|
soundlib/ModChannel.cpp
|
||
|
soundlib/ModInstrument.cpp
|
||
|
soundlib/ModSample.cpp
|
||
|
soundlib/ModSequence.cpp
|
||
|
soundlib/OggStream.cpp
|
||
|
soundlib/Paula.cpp
|
||
|
soundlib/RowVisitor.cpp
|
||
|
soundlib/S3MTools.cpp
|
||
|
soundlib/SampleFormatFLAC.cpp
|
||
|
soundlib/SampleFormatMP3.cpp
|
||
|
soundlib/SampleFormatMediaFoundation.cpp
|
||
|
soundlib/SampleFormatOpus.cpp
|
||
|
soundlib/SampleFormatVorbis.cpp
|
||
|
soundlib/SampleFormats.cpp
|
||
|
soundlib/SampleIO.cpp
|
||
|
soundlib/Snd_flt.cpp
|
||
|
soundlib/Snd_fx.cpp
|
||
|
soundlib/Sndfile.cpp
|
||
|
soundlib/Sndmix.cpp
|
||
|
soundlib/SoundFilePlayConfig.cpp
|
||
|
soundlib/Tables.cpp
|
||
|
soundlib/Tagging.cpp
|
||
|
soundlib/UMXTools.cpp
|
||
|
soundlib/UpgradeModule.cpp
|
||
|
soundlib/WAVTools.cpp
|
||
|
soundlib/WindowedFIR.cpp
|
||
|
soundlib/XMTools.cpp
|
||
|
soundlib/load_j2b.cpp
|
||
|
soundlib/mod_specifications.cpp
|
||
|
soundlib/modcommand.cpp
|
||
|
soundlib/modsmp_ctrl.cpp
|
||
|
soundlib/pattern.cpp
|
||
|
soundlib/patternContainer.cpp
|
||
|
soundlib/plugins/DigiBoosterEcho.cpp
|
||
|
soundlib/plugins/LFOPlugin.cpp
|
||
|
soundlib/plugins/PlugInterface.cpp
|
||
|
soundlib/plugins/PluginManager.cpp
|
||
|
soundlib/plugins/dmo/Chorus.cpp
|
||
|
soundlib/plugins/dmo/Compressor.cpp
|
||
|
soundlib/plugins/dmo/DMOPlugin.cpp
|
||
|
soundlib/plugins/dmo/Distortion.cpp
|
||
|
soundlib/plugins/dmo/Echo.cpp
|
||
|
soundlib/plugins/dmo/Flanger.cpp
|
||
|
soundlib/plugins/dmo/Gargle.cpp
|
||
|
soundlib/plugins/dmo/I3DL2Reverb.cpp
|
||
|
soundlib/plugins/dmo/ParamEq.cpp
|
||
|
soundlib/plugins/dmo/WavesReverb.cpp
|
||
|
soundlib/tuning.cpp
|
||
|
soundlib/tuningCollection.cpp
|
||
|
soundlib/tuningbase.cpp
|
||
|
)
|
||
|
|
||
|
add_library(libopenmpt ${lib_sources})
|
||
|
|
||
|
target_compile_definitions(libopenmpt PRIVATE
|
||
|
-DMPT_WITH_MPG123 -DMPT_WITH_OGG
|
||
|
-DMPT_WITH_VORBIS -DMPT_WITH_VORBISFILE
|
||
|
-DMPT_WITH_ZLIB -DMPT_BUILD_VCPKG
|
||
|
-DLIBOPENMPT_BUILD
|
||
|
)
|
||
|
|
||
|
set(cli_srcs openmpt123/openmpt123.cpp)
|
||
|
|
||
|
add_executable(openmpt123 ${cli_srcs})
|
||
|
|
||
|
target_compile_definitions(openmpt123 PRIVATE
|
||
|
-DMPT_WITH_MPG123 -DMPT_WITH_OGG
|
||
|
-DMPT_WITH_VORBIS -DMPT_WITH_VORBISFILE
|
||
|
-DMPT_WITH_ZLIB -DMPT_BUILD_VCPKG
|
||
|
-DLIBOPENMPT_BUILD
|
||
|
)
|
||
|
|
||
|
|
||
|
|
||
|
if(BUILD_SHARED_LIBS)
|
||
|
target_compile_definitions(
|
||
|
libopenmpt
|
||
|
PRIVATE
|
||
|
-DMPT_BUILD_MSVC_SHARED -DLIBOPENMPT_BUILD_DLL
|
||
|
)
|
||
|
target_compile_definitions(
|
||
|
openmpt123
|
||
|
PRIVATE
|
||
|
-DMPT_BUILD_MSVC_SHARED -DLIBOPENMPT_BUILD_DLL
|
||
|
)
|
||
|
else()
|
||
|
target_compile_definitions(
|
||
|
libopenmpt
|
||
|
PRIVATE
|
||
|
-DMPT_BUILD_MSVC_STATIC
|
||
|
)
|
||
|
target_compile_definitions(
|
||
|
openmpt123
|
||
|
PRIVATE
|
||
|
-DMPT_BUILD_MSVC_STATIC
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
target_link_libraries(
|
||
|
libopenmpt
|
||
|
PRIVATE
|
||
|
${OGG_LIBRARY}
|
||
|
${MPG123_LIBRARY}
|
||
|
${VORBISFILE_LIBRARY}
|
||
|
${VORBIS_LIBRARY}
|
||
|
${VORBISFILE_LIBRARY}
|
||
|
ZLIB::ZLIB
|
||
|
)
|
||
|
|
||
|
target_link_libraries(
|
||
|
openmpt123
|
||
|
PRIVATE
|
||
|
libopenmpt
|
||
|
${OGG_LIBRARY}
|
||
|
${MPG123_LIBRARY}
|
||
|
${VORBISFILE_LIBRARY}
|
||
|
${VORBIS_LIBRARY}
|
||
|
${VORBISFILE_LIBRARY}
|
||
|
${FLAC_LIBRARY}
|
||
|
${PORTAUDIO_LIBRARY}
|
||
|
Winmm
|
||
|
ZLIB::ZLIB
|
||
|
)
|
||
|
|
||
|
|
||
|
install(
|
||
|
TARGETS libopenmpt
|
||
|
RUNTIME DESTINATION bin
|
||
|
LIBRARY DESTINATION lib
|
||
|
ARCHIVE DESTINATION lib
|
||
|
)
|
||
|
|
||
|
|
||
|
if(NOT DISABLE_INSTALL_HEADERS)
|
||
|
install(FILES ${lib_headers} DESTINATION include/libopenmpt)
|
||
|
endif()
|
||
|
|
||
|
if(NOT DISABLE_INSTALL_TOOLS)
|
||
|
install (
|
||
|
TARGETS openmpt123
|
||
|
RUNTIME DESTINATION tools/libopenmpt
|
||
|
)
|
||
|
endif()
|