[Bug 795107] Meson: missing option to enable/disable plugins

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Apr 9 17:11:22 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=795107

--- Comment #3 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
I think we should use this opportunity to re-imagine the available options
configuration system. We don't have to copy all the existing options or map
them 1:1.

The reason I haven't added options for plugins yet is because I want this done
properly with support in Meson for auto-options and skipping subdirs, and with
a standardised global override for packagers (see below).

We will ignore the guidance in that gnome wiki page, it doesn't match our
needs.

I'm just going to write down some initial thoughts/requirements which will
hopefully help us decide what to propose on the Meson side.

I would suggest we focus on the plugin selection problematique first, the other
bits are less interesting or can already be handled satisfactorily with the
existing functionality in Meson (boolean options, disabler object etc.).

In terms of auto functionality, what I think we want is:

1) a tristate enum of some sort (enable/disable/auto) or equivalent

2) in "enabled" mode, checks should fail if the dependency requirements are not
met

3) in "disabled" mode, checks for dependencies should not be done at all (!),
at least there should be no visible user output. It is not acceptable that the
user sees checks for libvorbis in the output or log if they passed
-Dvorbis=disable.

4) a global configure switch to use "disable" as default value for all "auto"
defaults, so that only things that have been requested explicitly get enabled.

5) a global configure switch to use "enable" as default value for all "auto"
defaults, so that meson configure fails if any plugin dependency is not met for
plugins that haven't been disabled explicitly. This is useful for distro
packagers that want to make sure that all plugins get shipped (or consciously
disabled) and don't accidentally disappear from the package just because a dep
requirement was added or bumped.

6) plugin-specific dependency() etc. checks should stay in ext/foo/meson.build


For plugins we could probably do something with existing Meson features by
doing something like -Drequired-plugins=a,b,c and -Ddisable-plugins=d,e,f and
supporting 'all' and 'none' as options. This seems more like an emergency
fallback though, and not very nice. Surely we can do something nicer with Meson
support?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list