gplugin/gplugin

76d43734c071
Add a desired-state property to GPlugin.Plugin

This allows us to track what state the user wanted a plugin to be in. The use
case here is, I want to disable a plugin, but the plugin can't be cleanly
unloaded. The plugin returns FALSE from its unload function with an error
stating as such.

For a GPlugin consuming application this creates a dilema where the user can't
actually disable this plugin, because as far as everyone knows, that plugin
should be loaded. With this new property, the consuming application can then
check if the desired state is set to loaded before saving it to a list of
plugins to that should be loaded at the next launch.

Testing Done:
Updated the loader unit tests to make sure that the property is being set properly by `GPluginLoader`.

Reviewed at https://reviews.imfreedom.org/r/1200/
option(
'doc',
type : 'boolean', value : true, yield : true,
description : 'build documentation with gtk-doc'
)
option(
'introspection',
type : 'boolean', value : true, yield : true,
description : 'Whether or not to build a GObject Introspection type library'
)
option(
'devenv-config-dir',
type : 'string',
description : 'config directory for running a devenv (defaults to a subdirectory of buildroot)'
)
option(
'gtk3',
type : 'boolean', value : true,
description : 'Whether or not to build the GTK3 library'
)
option(
'gtk4',
type : 'feature',
description : 'Whether or not to build the GTK4 library'
)
option(
'help2man',
type : 'boolean', value : true,
description : 'Whether or not to build man pages from --help output'
)
option(
'install-gplugin-gtk3-viewer',
type : 'boolean', value : true,
description : 'Whether or not to install the GTK3 viewer application'
)
option(
'install-gplugin-gtk4-viewer',
type : 'boolean', value : true,
description : 'Whether or not to install the GTK4 viewer application'
)
option(
'install-gplugin-query',
type : 'boolean', value : true,
description : 'Whether or not to install the query application'
)
option(
'lua',
type : 'boolean', value : true,
description : 'Whether or not to build the Lua plugin loader'
)
option(
'nls',
type : 'boolean', value : true,
description : 'Install translation files'
)
option(
'perl5',
type : 'boolean', value : true,
description : 'Whether or not to build the Perl plugin loader'
)
option(
'python3',
type : 'boolean', value : true,
description : 'Whether or not to build the Python 3.x plugin loader'
)
option(
'rs',
type : 'boolean', value : false,
description : 'Whether or not to create the rust bindings.'
)
option(
'tcc',
type : 'boolean', value : false,
description : 'Whether or not to build the TCC plugin loader'
)
option(
'vapi',
type : 'boolean', value : true,
description : 'Whether or not to build vapi files for gplugin'
)