You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-video/totem/files/3.30.0-control-plugins.patch

200 lines
6.9 KiB

From 5bdfac8a4a34e3edec05439fa3cd5544e0515e24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <remi@gentoo.org>
Date: Sun, 10 Jun 2018 10:09:16 +0200
Subject: [PATCH] Allow full control over which plugins are built
---
meson.build | 2 +-
meson_options.txt | 28 ++++++++++++++++++++-
src/plugins/meson.build | 56 ++++++++++++++++++++++++++++++-----------
3 files changed, 69 insertions(+), 17 deletions(-)
diff --git a/meson.build b/meson.build
index 9c4797dd..aa91ae10 100644
--- a/meson.build
+++ b/meson.build
@@ -3,7 +3,7 @@ project(
version: '3.30.0',
license: 'GPL2+ with exception',
default_options: 'buildtype=debugoptimized',
- meson_version: '>= 0.43.0'
+ meson_version: '>= 0.44.0'
)
totem_version = meson.project_version()
diff --git a/meson_options.txt b/meson_options.txt
index 3b6ff67b..6e056952 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,7 +1,33 @@
option('enable-easy-codec-installation', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Whether to enable easy codec installation support for GStreamer')
option('enable-python', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Enable python support')
option('enable-vala', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'whether Vala plugin support is requested')
-option('with-plugins', type: 'combo', choices: ['all', 'none', 'auto'], value: 'auto', description: 'Which Totem plugins to compile (default: auto; "all", "none" and "auto" are valid)')
+option('with-plugins', type: 'array', choices: [
+ 'all',
+ 'auto',
+ 'apple-trailers',
+ 'autoload-subtitles',
+ 'brasero-disc-recorder',
+ 'dbusservice',
+ 'gromit',
+ 'im-status',
+ 'lirc',
+ 'media-player-keys',
+ 'ontop',
+ 'opensubtitles',
+ 'properties',
+ 'pythonconsole',
+ 'recent',
+ 'rotation',
+ 'sample-vala',
+ 'samplepython',
+ 'save-file',
+ 'screensaver',
+ 'screenshot',
+ 'skipto',
+ 'variable-rate',
+ 'vimeo',
+ 'zeitgeist-dp'
+], value: ['auto'], description: 'Which Totem plugins to compile (default: auto; "all", "none" and "auto" are valid)')
option('enable-nautilus', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'compile the nautilus plugin')
option('with-nautilusdir', type: 'string', value: '', description: 'Installation path for Nautilus extension')
option('enable-gtk-doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
diff --git a/src/plugins/meson.build b/src/plugins/meson.build
index 95af6485..289ba811 100644
--- a/src/plugins/meson.build
+++ b/src/plugins/meson.build
@@ -41,8 +41,8 @@ allowed_plugins = [
plugins = []
plugins_option = get_option('with-plugins')
-if plugins_option != 'none'
- plugins += [
+if plugins_option.length() > 0
+ foreach plugin: [
'apple-trailers',
'autoload-subtitles',
'im-status',
@@ -56,26 +56,38 @@ if plugins_option != 'none'
'variable-rate',
'vimeo'
]
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
+ plugins += plugin
+ endif
+ endforeach
- plugin_error = (plugins_option == 'all')
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('gromit')
+ gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
+ else
+ gdk_targets = []
+ endif
- gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
if gdk_targets.contains('x11')
plugins += 'gromit'
else
str = 'the gromit plugin is not supported on non-X11 targets'
- if plugin_error
+ if plugins_option.contains('all') or plugins_option.contains('gromit')
error(str)
endif
message(str)
endif
- lirc_dep = dependency('lirc', required: false)
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('lirc')
+ lirc_dep = dependency('lirc', required: false)
+ else
+ lirc_dep = disabler()
+ endif
+
if lirc_dep.found() and cc.has_function('lirc_init', dependencies: lirc_dep) and cc.has_header('lirc/lirc_client.h')
plugins += 'lirc'
else
str = 'you need lirc_client installed for the lirc plugin'
- if plugin_error
+ if plugins_option.contains('all') or plugins_option.contains('lirc')
error(str)
endif
message(str)
@@ -84,33 +96,38 @@ if plugins_option != 'none'
libxml_req_version = '>= 2.6.0'
libxml_dep = dependency('libxml-2.0', version: libxml_req_version, required: false)
gtk_x11_dep = dependency('gtk+-x11-3.0', version: gtk_req_version, required: false)
- if libxml_dep.found() and gtk_x11_dep.found()
+
+ if libxml_dep.found() and gtk_x11_dep.found() and (plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('brasero-disc-recorder'))
plugins += 'brasero-disc-recorder'
else
str = 'you need libxml-2.0 ' + libxml_req_version + ' and gtk+-x11-3.0 to use the brasero-disc-recorder plugin'
- if plugin_error
+ if plugins_option.contains('all') or plugins_option.contains('brasero-disc-recorder')
error(str)
endif
message(str)
endif
- if have_nautilus
+ if have_nautilus and (plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('save-file'))
plugins += 'save-file'
else
str = 'you need libnautilus-extension to use the save-file plugin'
- if plugin_error
+ if plugins_option.contains('all') or plugins_option.contains('save-file')
error(str)
endif
message(str)
endif
if have_python
- plugins += [
+ foreach plugin: [
'dbusservice',
'opensubtitles',
'pythonconsole',
'samplepython'
]
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
+ plugins += plugin
+ endif
+ endforeach
endif
if have_vala
@@ -129,17 +146,26 @@ if plugins_option != 'none'
'--pkg=@0@-@1@'.format(totem_gir_ns, totem_api_version)
]
- plugins += [
+ foreach plugin: [
'rotation',
'sample-vala'
]
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
+ plugins += plugin
+ endif
+ endforeach
+
+ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('zeitgeist-dp')
+ zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
+ else
+ zeitgeist_dep = disabler()
+ endif
- zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
if zeitgeist_dep.found()
plugins += 'zeitgeist-dp'
else
str = 'you need zeitgeist-2.0 >= 0.9.12 to use the zeitgeist-dp plugin'
- if plugin_error
+ if plugins_option.contains('all') or plugins_option.contains('zeitgeist-dp')
error(str)
endif
message(str)
--
2.17.1