summaryrefslogtreecommitdiff
path: root/src/decoder
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2017-12-29 17:12:55 +0100
committerMax Kellermann <max@musicpd.org>2018-10-14 23:41:38 +0200
commit94592c14062d5afc9482d11baa401648082022c0 (patch)
tree8723d462737f883181fb1aaa3f91ee3d0add9721 /src/decoder
parent13ce142df137f346526de2a31a7ccbd59a903cdd (diff)
build with Meson instead of autotools
So long, autotools! This is my last MPD related project to migrate away from it. It has its strengths, but also very obvious weaknesses and weirdnesses. Today, many of its quirks are not needed anymore, and are cumbersome and slow. Now welcome our new Meson overlords!
Diffstat (limited to 'src/decoder')
-rw-r--r--src/decoder/meson.build32
-rw-r--r--src/decoder/plugins/meson.build196
2 files changed, 228 insertions, 0 deletions
diff --git a/src/decoder/meson.build b/src/decoder/meson.build
new file mode 100644
index 000000000..39aecbb91
--- /dev/null
+++ b/src/decoder/meson.build
@@ -0,0 +1,32 @@
+decoder_api = static_library(
+ 'decoder_api',
+ 'DecoderAPI.cxx',
+ 'Reader.cxx',
+ 'DecoderBuffer.cxx',
+ 'DecoderPlugin.cxx',
+ include_directories: inc,
+)
+
+decoder_api_dep = declare_dependency(
+ link_with: decoder_api,
+ dependencies: [
+ tag_dep,
+ config_dep,
+ input_api_dep,
+ ],
+)
+
+subdir('plugins')
+
+decoder_glue = static_library(
+ 'decoder_glue',
+ 'DecoderList.cxx',
+ include_directories: inc,
+)
+
+decoder_glue_dep = declare_dependency(
+ link_with: decoder_glue,
+ dependencies: [
+ decoder_plugins_dep,
+ ],
+)
diff --git a/src/decoder/plugins/meson.build b/src/decoder/plugins/meson.build
new file mode 100644
index 000000000..e38310cf2
--- /dev/null
+++ b/src/decoder/plugins/meson.build
@@ -0,0 +1,196 @@
+decoder_plugins_sources = [
+ 'PcmDecoderPlugin.cxx',
+]
+
+if get_option('dsd')
+ decoder_plugins_sources += [
+ 'HybridDsdDecoderPlugin.cxx',
+ 'DsdiffDecoderPlugin.cxx',
+ 'DsfDecoderPlugin.cxx',
+ 'DsdLib.cxx',
+ ]
+endif
+
+if ffmpeg_dep.found()
+ decoder_plugins_sources += [
+ 'FfmpegIo.cxx',
+ 'FfmpegMetaData.cxx',
+ 'FfmpegDecoderPlugin.cxx',
+ ]
+endif
+
+adplug_dep = dependency('adplug', required: get_option('adplug'))
+conf.set('ENABLE_ADPLUG', adplug_dep.found())
+if adplug_dep.found()
+ decoder_plugins_sources += 'AdPlugDecoderPlugin.cxx'
+endif
+
+conf.set('ENABLE_FLAC', flac_dep.found())
+if flac_dep.found()
+ decoder_plugins_sources += [
+ 'FlacDecoderPlugin.cxx',
+ 'FlacInput.cxx',
+ 'FlacPcm.cxx',
+ 'FlacDomain.cxx',
+ 'FlacCommon.cxx',
+ ]
+endif
+
+conf.set('ENABLE_VORBIS_DECODER', libvorbis_dep.found())
+if libvorbis_dep.found()
+ decoder_plugins_sources += [
+ 'VorbisDecoderPlugin.cxx',
+ 'VorbisDomain.cxx',
+ ]
+endif
+
+conf.set('ENABLE_OPUS', libopus_dep.found())
+if libopus_dep.found()
+ decoder_plugins_sources += [
+ 'OpusDecoderPlugin.cxx',
+ 'OpusDomain.cxx',
+ 'OpusHead.cxx',
+ 'OpusTags.cxx',
+ ]
+endif
+
+if ogg_dep.found()
+ decoder_plugins_sources += 'OggDecoder.cxx'
+endif
+
+if xiph_dep.found()
+ decoder_plugins_sources += 'OggCodec.cxx'
+endif
+
+fluidsynth_dep = dependency('fluidsynth', version: '>= 1.1', required: get_option('fluidsynth'))
+conf.set('ENABLE_FLUIDSYNTH', fluidsynth_dep.found())
+if fluidsynth_dep.found()
+ decoder_plugins_sources += 'FluidsynthDecoderPlugin.cxx'
+endif
+
+libaudiofile_dep = dependency('audiofile', version: '>= 0.3', required: get_option('audiofile'))
+conf.set('ENABLE_AUDIOFILE', libaudiofile_dep.found())
+if libaudiofile_dep.found()
+ decoder_plugins_sources += 'AudiofileDecoderPlugin.cxx'
+endif
+
+libfaad_dep = c_compiler.find_library('faad', required: get_option('faad'))
+conf.set('ENABLE_FAAD', libfaad_dep.found())
+if libfaad_dep.found()
+ decoder_plugins_sources += 'FaadDecoderPlugin.cxx'
+endif
+
+libgme_dep = c_compiler.find_library('gme', required: get_option('gme'))
+conf.set('ENABLE_GME', libgme_dep.found())
+if libgme_dep.found()
+ decoder_plugins_sources += 'GmeDecoderPlugin.cxx'
+endif
+
+libmad_dep = c_compiler.find_library('mad', required: get_option('mad'))
+conf.set('ENABLE_MAD', libmad_dep.found())
+if libmad_dep.found()
+ decoder_plugins_sources += 'MadDecoderPlugin.cxx'
+endif
+
+libmikmod_dep = dependency('libmikmod', version: '>= 3.2', required: get_option('mikmod'))
+conf.set('ENABLE_LIBMIKMOD', libmikmod_dep.found())
+if libmikmod_dep.found()
+ decoder_plugins_sources += 'MikmodDecoderPlugin.cxx'
+endif
+
+libmodplug_dep = dependency('libmodplug', required: get_option('modplug'))
+conf.set('ENABLE_MODPLUG', libmodplug_dep.found())
+if libmodplug_dep.found()
+ decoder_plugins_sources += 'ModplugDecoderPlugin.cxx'
+endif
+
+libmpcdec_dep = c_compiler.find_library('mpcdec', required: get_option('mpcdec'))
+conf.set('ENABLE_MPCDEC', libmpcdec_dep.found())
+if libmpcdec_dep.found()
+ decoder_plugins_sources += 'MpcdecDecoderPlugin.cxx'
+endif
+
+libmpg123_dep = dependency('libmpg123', required: get_option('mpg123'))
+conf.set('ENABLE_MPG123', libmpg123_dep.found())
+if libmpg123_dep.found()
+ decoder_plugins_sources += 'Mpg123DecoderPlugin.cxx'
+endif
+
+libsndfile_dep = dependency('sndfile', required: get_option('sndfile'))
+conf.set('ENABLE_SNDFILE', libsndfile_dep.found())
+if libsndfile_dep.found()
+ decoder_plugins_sources += 'SndfileDecoderPlugin.cxx'
+endif
+
+wavpack_dep = dependency('wavpack', required: get_option('wavpack'))
+conf.set('ENABLE_WAVPACK', wavpack_dep.found())
+if wavpack_dep.found()
+ decoder_plugins_sources += 'WavpackDecoderPlugin.cxx'
+endif
+
+wildmidi_dep = c_compiler.find_library('WildMidi', required: get_option('wildmidi'))
+conf.set('ENABLE_WILDMIDI', wildmidi_dep.found())
+if wildmidi_dep.found()
+ decoder_plugins_sources += 'WildmidiDecoderPlugin.cxx'
+endif
+
+if not get_option('sidplay').disabled()
+ libsidplayfp_dep = dependency('libsidplayfp', required: false)
+ conf.set('HAVE_SIDPLAYFP', libsidplayfp_dep.found())
+
+ if libsidplayfp_dep.found()
+ libsidplay_dep = libsidplayfp_dep
+ else
+ libsidplay2_dep = dependency('libsidplay2', required: false)
+ if libsidplay2_dep.found()
+ libsidutils_dep = dependency('libsidutils')
+ libresid_builder_dep = compiler.find_library('resid-builder')
+ libsidplay_dep = declare_dependency(dependencies: [libsidplay2_dep, libsidutils_dep, libresid_builder_dep])
+ elif get_option('sidplay').enabled()
+ error('Neither libsidplayfp nor libsidplay2 found')
+ else
+ libsidplay_dep = libsidplay2_dep
+ endif
+ endif
+else
+ libsidplay_dep = dependency('', required: false)
+endif
+conf.set('ENABLE_SIDPLAY', libsidplay_dep.found())
+if libsidplay_dep.found()
+ decoder_plugins_sources += 'SidplayDecoderPlugin.cxx'
+endif
+
+decoder_plugins = static_library(
+ 'decoder_plugins',
+ decoder_plugins_sources,
+ include_directories: inc,
+ dependencies: [
+ adplug_dep,
+ ffmpeg_dep,
+ flac_dep,
+ fluidsynth_dep,
+ libaudiofile_dep,
+ libfaad_dep,
+ libgme_dep,
+ libmad_dep,
+ libmikmod_dep,
+ libmodplug_dep,
+ libmpcdec_dep,
+ libmpg123_dep,
+ libopus_dep,
+ libsidplay_dep,
+ libsndfile_dep,
+ libvorbis_dep,
+ ogg_dep,
+ wavpack_dep,
+ wildmidi_dep,
+ ],
+)
+
+decoder_plugins_dep = declare_dependency(
+ link_with: decoder_plugins,
+ dependencies: [
+ decoder_api_dep,
+ pcm_dep,
+ ],
+)