meson: Add feature options for many plugins

The rest will be converted later, these are necessary for gst-build to
set options correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
This commit is contained in:
Nirbheek Chauhan 2018-07-25 17:12:00 +05:30
parent 8908260c1f
commit 7ef303fa28
6 changed files with 109 additions and 94 deletions

View file

@ -1,3 +1,4 @@
# FIXME implement these
subdir('assrender') subdir('assrender')
subdir('aom') subdir('aom')
subdir('bs2b') subdir('bs2b')

View file

@ -1,63 +1,18 @@
subdir('accurip') foreach plugin : ['accurip', 'adpcmdec', 'adpcmenc', 'aiff', 'asfmux',
subdir('adpcmdec') 'audiobuffersplit', 'audiofxbad', 'audiomixmatrix',
subdir('adpcmenc') 'audiolatency', 'audiovisualizers', 'autoconvert', 'bayer',
subdir('aiff') 'camerabin2', 'coloreffects', 'compositor', 'debugutils',
subdir('asfmux') 'dvbsuboverlay', 'dvdspu', 'faceoverlay', 'festival',
subdir('audiobuffersplit') 'fieldanalysis', 'freeverb', 'frei0r', 'gaudieffects', 'gdp',
subdir('audiofxbad') 'geometrictransform', 'id3tag', 'inter', 'interlace',
subdir('audiomixmatrix') 'ivfparse', 'ivtc', 'jp2kdecimator', 'jpegformat', 'librfb',
subdir('audiolatency') 'midi', 'mpegdemux', 'mpegpsmux', 'mpegtsdemux', 'mpegtsmux',
subdir('audiovisualizers') 'mxf', 'netsim', 'onvif', 'pcapparse', 'pnm', 'proxy',
subdir('autoconvert') 'rawparse', 'removesilence', 'sdp', 'segmentclip', 'siren',
subdir('bayer') 'smooth', 'speed', 'stereo', 'subenc', 'timecode',
subdir('camerabin2') 'videofilters', 'videoframe_audiolevel', 'videoparsers',
subdir('coloreffects') 'videosignal', 'vmnc', 'y4m', 'yadif']
subdir('compositor') if not get_option(plugin).disabled()
subdir('debugutils') subdir(plugin)
subdir('dvbsuboverlay') endif
subdir('dvdspu') endforeach
subdir('faceoverlay')
subdir('festival')
subdir('fieldanalysis')
subdir('freeverb')
subdir('frei0r')
subdir('gaudieffects')
subdir('gdp')
subdir('geometrictransform')
subdir('id3tag')
subdir('inter')
subdir('interlace')
subdir('ivfparse')
subdir('ivtc')
subdir('jp2kdecimator')
subdir('jpegformat')
subdir('librfb')
subdir('midi')
subdir('mpegdemux')
subdir('mpegpsmux')
subdir('mpegtsdemux')
subdir('mpegtsmux')
subdir('mxf')
subdir('netsim')
subdir('onvif')
subdir('pcapparse')
subdir('pnm')
subdir('proxy')
subdir('rawparse')
subdir('removesilence')
subdir('sdp')
subdir('segmentclip')
subdir('siren')
subdir('smooth')
#subdir('smoothwave')
subdir('speed')
subdir('stereo')
subdir('subenc')
subdir('timecode')
subdir('videofilters')
subdir('videoframe_audiolevel')
subdir('videoparsers')
subdir('videosignal')
subdir('vmnc')
subdir('y4m')
subdir('yadif')

View file

@ -1,6 +1,6 @@
project('gst-plugins-bad', 'c', 'cpp', project('gst-plugins-bad', 'c', 'cpp',
version : '1.15.0.1', version : '1.15.0.1',
meson_version : '>= 0.46', meson_version : '>= 0.47',
default_options : [ 'warning_level=1', default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ]) 'buildtype=debugoptimized' ])
@ -273,9 +273,6 @@ cdata.set_quoted('GST_API_VERSION', api_version)
cdata.set_quoted('GST_LICENSE', 'LGPL') cdata.set_quoted('GST_LICENSE', 'LGPL')
cdata.set_quoted('LIBDIR', join_paths(get_option('prefix'), get_option('libdir'))) cdata.set_quoted('LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
cdata.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) cdata.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
if get_option('nls')
cdata.set('ENABLE_NLS', 1)
endif
warning_flags = [ warning_flags = [
'-Wmissing-declarations', '-Wmissing-declarations',
@ -460,20 +457,15 @@ endif
have_orcc = false have_orcc = false
orcc_args = [] orcc_args = []
if get_option('orc') != 'no' # Used by various libraries/elements that use Orc code
need_orc = get_option('orc') == 'yes' orc_dep = dependency('orc-0.4', required : get_option('orc'))
# Used by various libraries/elements that use Orc code orcc = find_program('orcc', required : get_option('orc'))
orc_dep = dependency('orc-0.4', required : need_orc) if orc_dep.found() and orcc.found()
orcc = find_program('orcc', required : need_orc) have_orcc = true
if orc_dep.found() and orcc.found() orcc_args = [orcc, '--include', 'glib.h']
have_orcc = true cdata.set('HAVE_ORC', 1)
orcc_args = [orcc, '--include', 'glib.h']
cdata.set('HAVE_ORC', 1)
else
message('Orc Compiler not found, will use backup C code')
cdata.set('DISABLE_ORC', 1)
endif
else else
message('Orc Compiler not found or disabled, will use backup C code')
cdata.set('DISABLE_ORC', 1) cdata.set('DISABLE_ORC', 1)
endif endif
@ -495,9 +487,9 @@ libsinc = include_directories('gst-libs')
python3 = import('python3').find_python() python3 = import('python3').find_python()
gir = find_program('g-ir-scanner', required : false) gir = find_program('g-ir-scanner', required : get_option('introspection'))
gnome = import('gnome') gnome = import('gnome')
build_gir = gir.found() and not meson.is_cross_build() and get_option('introspection') build_gir = gir.found() and not meson.is_cross_build()
gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
@ -518,11 +510,12 @@ subdir('ext')
subdir('tests') subdir('tests')
subdir('pkgconfig') subdir('pkgconfig')
configure_file(output : 'config.h', configuration : cdata)
# xgettext is optional (on Windows for instance) # xgettext is optional (on Windows for instance)
if get_option('nls') and find_program('xgettext', required : false).found() if find_program('xgettext', required : get_option('nls')).found()
cdata.set('ENABLE_NLS', 1)
subdir('po') subdir('po')
endif endif
configure_file(output : 'config.h', configuration : cdata)
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")') run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')

View file

@ -1,12 +1,77 @@
option('gst_player_tests', type: 'boolean', value: false, option('gst_player_tests', type: 'boolean', value: false,
description: 'Enable GstPlayer tests that need network access') description: 'Enable GstPlayer tests that need network access')
# Feature options for plugins without external deps
option('accurip', type : 'feature', value : 'auto')
option('adpcmdec', type : 'feature', value : 'auto')
option('adpcmenc', type : 'feature', value : 'auto')
option('aiff', type : 'feature', value : 'auto')
option('asfmux', type : 'feature', value : 'auto')
option('audiobuffersplit', type : 'feature', value : 'auto')
option('audiofxbad', type : 'feature', value : 'auto')
option('audiomixmatrix', type : 'feature', value : 'auto')
option('audiolatency', type : 'feature', value : 'auto')
option('audiovisualizers', type : 'feature', value : 'auto')
option('autoconvert', type : 'feature', value : 'auto')
option('bayer', type : 'feature', value : 'auto')
option('camerabin2', type : 'feature', value : 'auto')
option('coloreffects', type : 'feature', value : 'auto')
option('compositor', type : 'feature', value : 'auto')
option('debugutils', type : 'feature', value : 'auto')
option('dvbsuboverlay', type : 'feature', value : 'auto')
option('dvdspu', type : 'feature', value : 'auto')
option('faceoverlay', type : 'feature', value : 'auto')
option('festival', type : 'feature', value : 'auto')
option('fieldanalysis', type : 'feature', value : 'auto')
option('freeverb', type : 'feature', value : 'auto')
option('frei0r', type : 'feature', value : 'auto')
option('gaudieffects', type : 'feature', value : 'auto')
option('gdp', type : 'feature', value : 'auto')
option('geometrictransform', type : 'feature', value : 'auto')
option('id3tag', type : 'feature', value : 'auto')
option('inter', type : 'feature', value : 'auto')
option('interlace', type : 'feature', value : 'auto')
option('ivfparse', type : 'feature', value : 'auto')
option('ivtc', type : 'feature', value : 'auto')
option('jp2kdecimator', type : 'feature', value : 'auto')
option('jpegformat', type : 'feature', value : 'auto')
option('librfb', type : 'feature', value : 'auto')
option('midi', type : 'feature', value : 'auto')
option('mpegdemux', type : 'feature', value : 'auto')
option('mpegpsmux', type : 'feature', value : 'auto')
option('mpegtsdemux', type : 'feature', value : 'auto')
option('mpegtsmux', type : 'feature', value : 'auto')
option('mxf', type : 'feature', value : 'auto')
option('netsim', type : 'feature', value : 'auto')
option('onvif', type : 'feature', value : 'auto')
option('pcapparse', type : 'feature', value : 'auto')
option('pnm', type : 'feature', value : 'auto')
option('proxy', type : 'feature', value : 'auto')
option('rawparse', type : 'feature', value : 'auto')
option('removesilence', type : 'feature', value : 'auto')
option('sdp', type : 'feature', value : 'auto')
option('segmentclip', type : 'feature', value : 'auto')
option('siren', type : 'feature', value : 'auto')
option('smooth', type : 'feature', value : 'auto')
option('speed', type : 'feature', value : 'auto')
option('stereo', type : 'feature', value : 'auto')
option('subenc', type : 'feature', value : 'auto')
option('timecode', type : 'feature', value : 'auto')
option('videofilters', type : 'feature', value : 'auto')
option('videoframe_audiolevel', type : 'feature', value : 'auto')
option('videoparsers', type : 'feature', value : 'auto')
option('videosignal', type : 'feature', value : 'auto')
option('vmnc', type : 'feature', value : 'auto')
option('y4m', type : 'feature', value : 'auto')
option('yadif', type : 'feature', value : 'auto')
# Common feature options
option('examples', type : 'feature', value : 'auto', yield : true)
option('introspection', type : 'feature', value : 'auto', yield : true, description : 'Generate gobject-introspection bindings')
option('nls', type : 'feature', value : 'auto', yield: true, description : 'Enable native language support (translations)')
option('orc', type : 'feature', value : 'auto', yield : true)
# Common options # Common options
option('nls', type : 'boolean', value : true, yield: true,
description : 'Enable native language support (translations)')
option('orc', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto', yield : true)
option('introspection', type : 'boolean', value : true, yield : true,
description : 'Generate gobject-introspection bindings')
option('package-name', type : 'string', yield : true, option('package-name', type : 'string', yield : true,
description : 'package name to use in plugins') description : 'package name to use in plugins')
option('package-origin', type : 'string', value : 'Unknown package origin', yield : true, option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,

View file

@ -1,5 +1,5 @@
gtk_dep = dependency('gtk+-3.0', required : false) gtk_dep = dependency('gtk+-3.0', required : get_option('examples'))
gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : false) gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : get_option('examples'))
if use_wayland and gtk_dep.found() and gtk_wayland_dep.found() if use_wayland and gtk_dep.found() and gtk_wayland_dep.found()
executable('waylandsink', executable('waylandsink',

View file

@ -2,5 +2,6 @@
if host_machine.system() != 'windows' if host_machine.system() != 'windows'
subdir('check') subdir('check')
endif endif
if not get_option('examples').disabled()
subdir('examples') subdir('examples')
endif