meson: build gme plugin
authorTim-Philipp Müller <tim@centricular.com>
Sun, 16 Dec 2018 00:56:50 +0000 (00:56 +0000)
committerSebastian Dröge <slomo@coaxion.net>
Mon, 17 Dec 2018 09:12:53 +0000 (09:12 +0000)
ext/gme/meson.build [new file with mode: 0644]
ext/meson.build
meson_options.txt

diff --git a/ext/gme/meson.build b/ext/gme/meson.build
new file mode 100644 (file)
index 0000000..33c6e1b
--- /dev/null
@@ -0,0 +1,23 @@
+if get_option('gme').disabled()
+  subdir_done()
+endif
+
+have_gme = cc.has_header ('gme/gme.h')
+if have_gme
+  gme_dep = cc.find_library('gme', required: get_option('gme'))
+  have_gme = gme_dep.found()
+endif
+
+if have_gme
+  cdata.set('HAVE_LIBGME_ACCURACY', cc.has_function('gme_enable_accuracy', dependencies: gme_dep))
+  gstgme = library('gstgme', 'gstgme.c',
+    c_args: gst_plugins_bad_args,
+    include_directories: [configinc],
+    dependencies: [gstaudio_dep, gme_dep],
+    install: true,
+    install_dir: plugins_install_dir,
+  )
+  pkgconfig.generate(gstgme, install_dir: plugins_pkgconfig_install_dir)
+elif get_option('gme').enabled()
+  error('libgme plugin was enabled but required dependencies not found.')
+endif
index e1350b4..255e1c8 100644 (file)
@@ -18,7 +18,7 @@ subdir('fdkaac')
 subdir('flite')
 subdir('fluidsynth')
 subdir('gl')
-#subdir('gme')
+subdir('gme')
 subdir('gsm')
 subdir('hls')
 subdir('iqa')
index 6ac0474..1ba732c 100644 (file)
@@ -99,6 +99,7 @@ option('fdkaac', type : 'feature', value : 'auto', description : 'Fraunhofer AAC
 option('flite', type : 'feature', value : 'auto', description : 'Flite speech synthesizer source plugin')
 option('fluidsynth', type : 'feature', value : 'auto', description : 'Fluidsynth MIDI decoder plugin')
 option('gl', type : 'feature', value : 'auto', description : 'GStreamer OpenGL mixer plugin')
+option('gme', type : 'feature', value : 'auto', description : 'libgme gaming console music file decoder plugin')
 option('gsm', type : 'feature', value : 'auto', description : 'GSM encoder/decoder plugin')
 option('ipcpipeline', type : 'feature', value : 'auto', description : 'Inter-process communication plugin')
 option('iqa', type : 'feature', value : 'auto', description : 'Image quality assessment plugin')