mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-17 21:06:17 +00:00
meson: Add feature options for optional deps
Everything should be behind an option now. https://bugzilla.gnome.org/show_bug.cgi?id=795107
This commit is contained in:
parent
a569347789
commit
09f67fe76a
5 changed files with 53 additions and 48 deletions
42
meson.build
42
meson.build
|
@ -76,7 +76,6 @@ cdata.set_quoted('PLUGINDIR', join_paths(get_option('prefix'), get_option('libdi
|
||||||
cdata.set_quoted('VERSION', gst_version)
|
cdata.set_quoted('VERSION', gst_version)
|
||||||
# FIXME: --with-memory-alignment],[8,N,malloc,pagesize (default is 32)]) option
|
# FIXME: --with-memory-alignment],[8,N,malloc,pagesize (default is 32)]) option
|
||||||
cdata.set('MEMORY_ALIGNMENT_MALLOC', 1)
|
cdata.set('MEMORY_ALIGNMENT_MALLOC', 1)
|
||||||
cdata.set('ENABLE_NLS', get_option('nls'))
|
|
||||||
cdata.set_quoted('GST_PLUGIN_SCANNER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-plugin-scanner'))
|
cdata.set_quoted('GST_PLUGIN_SCANNER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-plugin-scanner'))
|
||||||
cdata.set_quoted('GST_PTP_HELPER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-ptp-helper'))
|
cdata.set_quoted('GST_PTP_HELPER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-ptp-helper'))
|
||||||
cdata.set_quoted('GST_PLUGIN_SCANNER_SUBDIR', libexecdir,
|
cdata.set_quoted('GST_PLUGIN_SCANNER_SUBDIR', libexecdir,
|
||||||
|
@ -301,9 +300,8 @@ if host_system == 'windows'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
backtrace_deps = []
|
backtrace_deps = []
|
||||||
if get_option('libunwind')
|
unwind_dep = dependency('libunwind', required : get_option('libunwind'))
|
||||||
unwind_dep = dependency('libunwind', required : false)
|
dw_dep = dependency('libdw', required: get_option('libunwind'))
|
||||||
dw_dep = dependency('libdw', required: false)
|
|
||||||
backtrace_deps = [unwind_dep, dw_dep]
|
backtrace_deps = [unwind_dep, dw_dep]
|
||||||
if unwind_dep.found()
|
if unwind_dep.found()
|
||||||
cdata.set('HAVE_UNWIND', 1)
|
cdata.set('HAVE_UNWIND', 1)
|
||||||
|
@ -319,7 +317,6 @@ if get_option('libunwind')
|
||||||
message('NO backtraces support.')
|
message('NO backtraces support.')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
if cc.has_header('execinfo.h')
|
if cc.has_header('execinfo.h')
|
||||||
if cc.has_function('backtrace', prefix : '#include <execinfo.h>')
|
if cc.has_function('backtrace', prefix : '#include <execinfo.h>')
|
||||||
|
@ -404,11 +401,10 @@ mathlib = cc.find_library('m', required : false)
|
||||||
# Also provides clock_gettime in glibc < 2.17
|
# Also provides clock_gettime in glibc < 2.17
|
||||||
rt_lib = cc.find_library('rt', required : false)
|
rt_lib = cc.find_library('rt', required : false)
|
||||||
|
|
||||||
gir = find_program('g-ir-scanner', required : false)
|
gir = find_program('g-ir-scanner', required : get_option('introspection'))
|
||||||
gnome = import('gnome')
|
gnome = import('gnome')
|
||||||
|
|
||||||
# Fixme, not very elegant.
|
build_gir = gir.found() and not meson.is_cross_build()
|
||||||
build_gir = gir.found() and not meson.is_cross_build() and get_option('introspection')
|
|
||||||
|
|
||||||
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_DISABLE", "yes", TRUE);' + \
|
'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
|
||||||
|
@ -429,22 +425,33 @@ endif
|
||||||
# Used in gst/parse/meson.build and below
|
# Used in gst/parse/meson.build and below
|
||||||
python3 = import('python3').find_python()
|
python3 = import('python3').find_python()
|
||||||
|
|
||||||
bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : false)
|
bashcomp_option = get_option('bash-completion')
|
||||||
|
bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : bashcomp_option)
|
||||||
bashcomp_found = bashcomp_dep.found()
|
|
||||||
bash_completions_dir = ''
|
bash_completions_dir = ''
|
||||||
bash_helpers_dir = ''
|
bash_helpers_dir = ''
|
||||||
|
|
||||||
if bashcomp_found
|
bashcomp_found = false
|
||||||
|
if bashcomp_dep.found()
|
||||||
|
bashcomp_found = true
|
||||||
bash_completions_dir = bashcomp_dep.get_pkgconfig_variable('completionsdir', define_variable: ['prefix', '.'])
|
bash_completions_dir = bashcomp_dep.get_pkgconfig_variable('completionsdir', define_variable: ['prefix', '.'])
|
||||||
if bash_completions_dir == ''
|
if bash_completions_dir == ''
|
||||||
message('Found bash-completion but the .pc file did not set \'completionsdir\'.')
|
msg = 'Found bash-completion but the .pc file did not set \'completionsdir\'.'
|
||||||
|
if bashcomp_option.enabled()
|
||||||
|
error(msg)
|
||||||
|
else
|
||||||
|
message(msg)
|
||||||
|
endif
|
||||||
bashcomp_found = false
|
bashcomp_found = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bash_helpers_dir = bashcomp_dep.get_pkgconfig_variable('helpersdir', define_variable: ['prefix', '.'])
|
bash_helpers_dir = bashcomp_dep.get_pkgconfig_variable('helpersdir', define_variable: ['prefix', '.'])
|
||||||
if bash_helpers_dir == ''
|
if bash_helpers_dir == ''
|
||||||
message('Found bash-completion, but the .pc file did not set \'helpersdir\'.')
|
msg = 'Found bash-completion, but the .pc file did not set \'helpersdir\'.'
|
||||||
|
if bashcomp_option.enabled()
|
||||||
|
error(msg)
|
||||||
|
else
|
||||||
|
message(msg)
|
||||||
|
endif
|
||||||
bashcomp_found = false
|
bashcomp_found = false
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -458,7 +465,8 @@ subdir('tests')
|
||||||
subdir('data')
|
subdir('data')
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
|
@ -466,10 +474,8 @@ configure_file(output : 'config.h', configuration : cdata)
|
||||||
|
|
||||||
if build_machine.system() == 'windows'
|
if build_machine.system() == 'windows'
|
||||||
message('Disabling gtk-doc while building on Windows')
|
message('Disabling gtk-doc while building on Windows')
|
||||||
elif not get_option('gtk_doc')
|
|
||||||
message('gtk-doc is disabled via options')
|
|
||||||
else
|
else
|
||||||
if find_program('gtkdoc-scan', required : false).found()
|
if find_program('gtkdoc-scan', required : get_option('gtk_doc')).found()
|
||||||
subdir('docs')
|
subdir('docs')
|
||||||
else
|
else
|
||||||
message('Not building documentation as gtk-doc was not found')
|
message('Not building documentation as gtk-doc was not found')
|
||||||
|
|
|
@ -3,26 +3,26 @@ option('poisoning', type : 'boolean', value : false)
|
||||||
option('gst_debug', type : 'boolean', value : true)
|
option('gst_debug', type : 'boolean', value : true)
|
||||||
option('registry', type : 'boolean', value : true)
|
option('registry', type : 'boolean', value : true)
|
||||||
option('tracer_hooks', type : 'boolean', value : true)
|
option('tracer_hooks', type : 'boolean', value : true)
|
||||||
option('libunwind', type : 'boolean', value : true,
|
|
||||||
description : 'Use libunwind to generate backtraces')
|
|
||||||
option('ptp-helper-setuid-user', type : 'string',
|
option('ptp-helper-setuid-user', type : 'string',
|
||||||
description : 'User to switch to when installing gst-ptp-helper setuid root')
|
description : 'User to switch to when installing gst-ptp-helper setuid root')
|
||||||
option('ptp-helper-setuid-group', type : 'string',
|
option('ptp-helper-setuid-group', type : 'string',
|
||||||
description : 'Group to switch to when installing gst-ptp-helper setuid root')
|
description : 'Group to switch to when installing gst-ptp-helper setuid root')
|
||||||
option('ptp-helper-permissions', type : 'combo',
|
option('ptp-helper-permissions', type : 'combo',
|
||||||
choices : ['none', 'setuid-root', 'capabilities', 'auto'], value : 'auto')
|
choices : ['none', 'setuid-root', 'capabilities', 'auto'], value : 'auto')
|
||||||
|
option('extra-checks', type : 'boolean', value : true, description : 'Enable extra runtime checks')
|
||||||
|
|
||||||
|
# Feature options
|
||||||
|
option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
|
||||||
|
option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
|
||||||
|
|
||||||
|
# Common feature options
|
||||||
|
option('examples', type : 'feature', value : 'auto', yield : true)
|
||||||
|
option('gtk_doc', type : 'feature', value : 'auto', yield : true, description : 'Generate API documentation with gtk-doc')
|
||||||
|
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)')
|
||||||
|
|
||||||
# Common options
|
# Common options
|
||||||
option('examples', type : 'boolean', value : true, yield : true)
|
|
||||||
option('gtk_doc', type : 'boolean', value : true, yield : true,
|
|
||||||
description : 'Generate API documentation with gtk-doc')
|
|
||||||
option('introspection', type : 'boolean', value : true, yield : true,
|
|
||||||
description : 'Generate gobject-introspection bindings')
|
|
||||||
option('nls', type : 'boolean', value : true, yield: true,
|
|
||||||
description : 'Enable native language support (translations)')
|
|
||||||
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,
|
||||||
description : 'package origin URL to use in plugins')
|
description : 'package origin URL to use in plugins')
|
||||||
option('extra-checks', type : 'boolean', value : true,
|
|
||||||
description : 'Enable extra runtime checks')
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ foreach prog : progs
|
||||||
)
|
)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
gtk_dep = dependency('gtk+-3.0', required : false)
|
gtk_dep = dependency('gtk+-3.0', required : get_option('examples'))
|
||||||
if gtk_dep.found()
|
if gtk_dep.found()
|
||||||
executable('controller-graph', 'controller-graph.c',
|
executable('controller-graph', 'controller-graph.c',
|
||||||
install: false,
|
install: false,
|
||||||
|
|
|
@ -4,9 +4,8 @@ executable('stream-status', 'stream-status.c',
|
||||||
c_args: gst_c_args,
|
c_args: gst_c_args,
|
||||||
)
|
)
|
||||||
|
|
||||||
# we assume that if the header is there it actually found pthreads as thread lib
|
if cc.has_header('pthread.h')
|
||||||
threads_dep = dependency('threads', required : false)
|
threads_dep = dependency('threads')
|
||||||
if threads_dep.found() and cc.has_header('pthread.h')
|
|
||||||
executable('rtpool-test', 'rtpool-test.c', 'testrtpool.c',
|
executable('rtpool-test', 'rtpool-test.c', 'testrtpool.c',
|
||||||
install: false,
|
install: false,
|
||||||
dependencies : [glib_dep, gobject_dep, gmodule_dep, mathlib, gst_dep, threads_dep],
|
dependencies : [glib_dep, gobject_dep, gmodule_dep, mathlib, gst_dep, threads_dep],
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
subdir('benchmarks')
|
subdir('benchmarks')
|
||||||
subdir('check')
|
subdir('check')
|
||||||
if get_option('examples')
|
if not get_option('examples').disabled()
|
||||||
subdir('examples')
|
subdir('examples')
|
||||||
endif
|
endif
|
||||||
subdir('misc')
|
subdir('misc')
|
||||||
|
|
Loading…
Reference in a new issue