Stéphane Cerveau dd17beb681 gstreamer-full: add full static support
Allow a project to use gstreamer-full as a static library
and link to create a binary without dependencies.

Introduce the option 'gst-full-target-type' to
select the build type, dynamic(default) or static.

In gstreamer-full/static build configuration gstreamer (gst.c)
needs the symbol gst_init_static_plugins which is defined
in gstreamer-full.
All the tests and examples are linking with gstreamer but the
symbol gst_init_static_plugins is only defined in the gstreamer-full
library. gstreamer-full can not be built first as it needs to know what plugins
will be built.

One option would be to build all the examples and tests after
gstreamer-full as the tools.

Disable tools build in subprojects too as it will be built at the end of
build process.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00

51 lines
3.5 KiB
Meson

option('gst_debug', type : 'boolean', value : true)
option('gst_parse', type : 'boolean', value : true,
description: 'Enable pipeline string parser')
option('registry', type : 'boolean', value : true)
option('tracer_hooks', type : 'boolean', value : true, description: 'Enable tracer usage')
option('ptp-helper', type: 'feature', description: 'Build gst-ptp-helper')
option('ptp-helper-setuid-user', type : 'string',
description : 'User to switch to when installing gst-ptp-helper setuid root')
option('ptp-helper-setuid-group', type : 'string',
description : 'Group to switch to when installing gst-ptp-helper setuid root')
option('ptp-helper-permissions', type : 'combo',
choices : ['none', 'setuid-root', 'capabilities', 'auto'], value : 'auto')
option('option-parsing', type : 'boolean', value : true,
description: 'Enable command line option parsing')
option('poisoning', type : 'boolean', value : false, description : 'Enable poisoning of deallocated objects')
option('memory-alignment', type: 'combo',
choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
value: 'malloc')
# Feature options
option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
option('coretracers', type : 'feature', value : 'auto', description : 'Build coretracers plugin')
option('gstreamer-full', type : 'feature', value : 'disabled', description : 'Build with gstreamer-full')
# Common feature options
option('examples', type : 'feature', value : 'auto', yield : true)
option('tests', type : 'feature', value : 'auto', yield : true)
option('benchmarks', type : 'feature', value : 'auto', yield : true)
option('tools', 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('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases)')
option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases)')
option('glib-checks', type : 'feature', value : 'enabled', yield : true,
description: 'Enable GLib checks such as API guards (auto = enabled for development, disabled for stable releases)')
option('extra-checks', type : 'feature', value : 'enabled', yield : true, description : 'Enable extra runtime checks')
# Common options
option('package-name', type : 'string', yield : true,
description : 'package name to use in plugins')
option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,
description : 'package origin URL to use in plugins')
option('doc', type : 'feature', value : 'auto', yield: true,
description: 'Enable documentation.')