`gst_init()` and applications must not call it manually any more. The header
file has been removed from public API.
+One can use the `gst-full-version-script` option to pass a
+[version script](https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html)
+to the linker. This can be used to control the exact symbols that are exported by
+the gstreamer-full library, allowing the linker to garbage collect unused code
+and so reduce the total library size.
+
This is an experimental feature, backward uncompatible changes could still be
made in the future.
requires = ['glib-2.0', 'gobject-2.0']
endif
+ link_deps = []
+ if get_option('gst-full-version-script') != ''
+ symbol_map = meson.current_source_dir() / get_option('gst-full-version-script')
+ link_arg = '-Wl,--version-script=' + symbol_map
+ if cc.has_link_argument(link_arg)
+ gstfull_link_args += link_arg
+ else
+ error('Failed to link with version script (' + symbol_map + '), check logs for details')
+ endif
+ link_deps += symbol_map
+ endif
+
# Build both shared and static library
gstfull = both_libraries('gstreamer-full-1.0',
init_static_plugins_c,
link_args: gstfull_link_args,
link_whole : exposed_libs,
dependencies : gst_dep,
+ link_depends : link_deps,
install : true,
)
pkgconfig.generate(gstfull,
option('custom_subprojects', type : 'string', value : '', description : 'Comma-separated project names')
option('gst-full-libraries', type : 'array', value : [],
description : '''List of libraries to expose in gstreamer-full's ABI. gstreamer, glib and gobject are always included.''')
+option('gst-full-version-script', type : 'string', value: '',
+ description : 'path of the version script to be used by the linker, see https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html')
# Common options, automatically inherited by subprojects
option('tests', type : 'feature', value : 'auto', description : 'Build tests')