meson: build wildmidi plugin

This commit is contained in:
Tim-Philipp Müller 2018-12-16 18:07:48 +00:00 committed by Sebastian Dröge
parent 56c65afff4
commit 4130b08776
3 changed files with 34 additions and 1 deletions

View file

@ -52,7 +52,6 @@ subdir('spandsp')
subdir('srt')
subdir('srtp')
#subdir('teletextdec')
#subdir('wildmidi')
subdir('ttml')
subdir('voaacenc')
#subdir('voamrwbenc')
@ -61,6 +60,7 @@ subdir('wayland')
subdir('webrtc')
subdir('webrtcdsp')
subdir('webp')
subdir('wildmidi')
subdir('wpe')
subdir('x265')
subdir('zbar')

32
ext/wildmidi/meson.build Normal file
View file

@ -0,0 +1,32 @@
if get_option('wildmidi').disabled()
subdir_done()
endif
# Recent versions ship a pkg-config file, so try that first
wildmidi_dep = dependency('WildMIDI', version: '>= 0.4.2', required: false)
if not wildmidi_dep.found() and cc.has_header ('wildmidi_lib.h')
wildmidi_ver_maj = cc.get_define('LIBWILDMIDI_VER_MAJOR', prefix: '#include <wildmidi_lib.h>')
wildmidi_ver_min = cc.get_define('LIBWILDMIDI_VER_MINOR', prefix: '#include <wildmidi_lib.h>')
wildmidi_ver_maj = ''.join(wildmidi_ver_maj.split('L')).to_int() # '0L' -> 0
wildmidi_ver_min = ''.join(wildmidi_ver_min.split('L')).to_int() # '4L' -> 4
if wildmidi_ver_maj == 0 and wildmidi_ver_min >= 4
wildmidi_dep = cc.find_library('WildMidi', required: false)
else
message('WildMidi version too old, need >= 0.4.x')
endif
endif
if wildmidi_dep.found()
gstwildmidi = library('gstwildmidi',
'gstwildmididec.c',
c_args: gst_plugins_bad_args,
include_directories: [configinc],
dependencies: [gstaudio_dep, gstbadaudio_dep, wildmidi_dep],
install: true,
install_dir: plugins_install_dir,
)
pkgconfig.generate(gstwildmidi, install_dir: plugins_pkgconfig_install_dir)
elif get_option('wildmidi').enabled()
error('WildMidi plugin explicitly enabled, but required library or headers not found.')
endif

View file

@ -144,6 +144,7 @@ option('wasapi', type : 'feature', value : 'auto', description : 'Windows Audio
option('webp', type : 'feature', value : 'auto', description : 'WebP image codec plugin')
option('webrtc', type : 'feature', value : 'auto', description : 'WebRTC audio/video network bin plugin')
option('webrtcdsp', type : 'feature', value : 'auto', description : 'Plugin with various audio filters provided by the WebRTC audio processing library')
option('wildmidi', type : 'feature', value : 'auto', description : 'WildMidi midi soft synth plugin')
option('winks', type : 'feature', value : 'auto', description : 'Windows Kernel Streaming video source plugin')
option('winscreencap', type : 'feature', value : 'auto', description : 'Windows Screen Capture video source plugin')
option('x265', type : 'feature', value : 'auto', description : 'HEVC/H.265 video encoder plugin')