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.
200 lines
6.9 KiB
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
|
|
|