aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorIñigo Martínez <inigomartinez@gmail.com>2021-09-08 14:42:08 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-10-14 07:57:55 +0000
commitbbc157688d9ff82e548a155be1a54a8220fb0f09 (patch)
tree85311483493cbb2dafd80c83b71a273b21107199 /meson.build
parent85a99ae028f42d5b35ffb42888a5c2201fd0e91d (diff)
build,meson: Improve plugins option set
Improved the way the plugins are set to allow a smaller summary.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build97
1 files changed, 28 insertions, 69 deletions
diff --git a/meson.build b/meson.build
index ed418148..a5958f0c 100644
--- a/meson.build
+++ b/meson.build
@@ -265,7 +265,9 @@ enable_vapi = get_option('vapi')
# gtkdoc support
enable_gtk_doc = get_option('gtk_doc')
-plugins_shared = {
+enable_plugins = not get_option('auto_features').disabled()
+
+plugins_shared_reqs = {
'foxconn': enable_mbim,
'icera': true,
'novatel': true,
@@ -275,7 +277,7 @@ plugins_shared = {
'xmm': true,
}
-plugins_options = {
+plugins_options_reqs = {
'altair-lte': [],
'anydata': [],
'broadmobi': [],
@@ -317,23 +319,28 @@ plugins_options = {
'zte': ['icera'],
}
-disable_all_plugins = get_option('plugin_disable_all')
-
-enable_plugins = []
-enable_plugins_shared = []
-if not disable_all_plugins
- foreach plugin_name, plugin_shared_reqs: plugins_options
- if get_option('plugin_' + plugin_name.underscorify())
- enable_plugins += [plugin_name]
- foreach plugin_req: plugin_shared_reqs
- assert(plugins_shared[plugin_req], '@0@ required @1@ but is not available'.format(plugin_name, plugin_req))
- if not enable_plugins_shared.contains(plugin_req)
- enable_plugins_shared += [plugin_req]
- endif
- endforeach
- endif
- endforeach
-endif
+plugins_shared = {}
+foreach plugin_name, _: plugins_shared_reqs
+ plugins_shared += {plugin_name: false}
+endforeach
+
+plugins_options = {}
+foreach plugin_name, plugin_reqs: plugins_options_reqs
+ plugin_opt = get_option('plugin_' + plugin_name.underscorify())
+ plugin_enabled = not plugin_opt.disabled()
+ if plugin_enabled
+ foreach plugin_req: plugin_reqs
+ if plugins_shared_reqs[plugin_req]
+ plugins_shared += {plugin_req: true}
+ else
+ assert(plugin_opt.enabled(), '@0@ required @1@ but is not available'.format(plugin_name, plugin_req))
+ plugin_enabled = false
+ break
+ endif
+ endforeach
+ endif
+ plugins_options += {plugin_name: plugin_enabled}
+endforeach
version_conf = {
'MM_MAJOR_VERSION': mm_major_version,
@@ -397,57 +404,9 @@ summary({
'at command via dbus': enable_at_command_via_dbus,
}, section: 'Features')
-summary({
- 'foxconn': enable_plugins_shared.contains('foxconn'),
- 'icera': enable_plugins_shared.contains('icera'),
- 'novatel': enable_plugins_shared.contains('novatel'),
- 'option': enable_plugins_shared.contains('option'),
- 'sierra': enable_plugins_shared.contains('sierra'),
- 'telit': enable_plugins_shared.contains('telit'),
- 'xmm': enable_plugins_shared.contains('xmm'),
-}, section: 'Shared utils')
+summary(plugins_shared, section: 'Shared utils')
-summary({
- 'altair-lte': enable_plugins.contains('altair-lte'),
- 'anydata': enable_plugins.contains('anydata'),
- 'broadmobi': enable_plugins.contains('broadmobi'),
- 'cinterion': enable_plugins.contains('cinterion'),
- 'dell': enable_plugins.contains('dell'),
- 'dlink': enable_plugins.contains('dlink'),
- 'fibocom': enable_plugins.contains('fibocom'),
- 'foxconn': enable_plugins.contains('foxconn'),
- 'generic': enable_plugins.contains('generic'),
- 'gosuncn': enable_plugins.contains('gosuncn'),
- 'haier': enable_plugins.contains('haier'),
- 'huawei': enable_plugins.contains('huawei'),
- 'iridium': enable_plugins.contains('iridium'),
- 'linktop': enable_plugins.contains('linktop'),
- 'longcheer': enable_plugins.contains('longcheer'),
- 'mbm': enable_plugins.contains('mbm'),
- 'motorola': enable_plugins.contains('motorola'),
- 'mtk': enable_plugins.contains('mtk'),
- 'nokia': enable_plugins.contains('nokia'),
- 'nokia-icera': enable_plugins.contains('nokia-icera'),
- 'novatel': enable_plugins.contains('novatel'),
- 'novatel-lte': enable_plugins.contains('novatel-lte'),
- 'option': enable_plugins.contains('option'),
- 'option-hso': enable_plugins.contains('option-hso'),
- 'pantech': enable_plugins.contains('pantech'),
- 'qcom-soc': enable_plugins.contains('qcom-soc'),
- 'quectel': enable_plugins.contains('quectel'),
- 'samsung': enable_plugins.contains('samsung'),
- 'sierra': enable_plugins.contains('sierra'),
- 'sierra-legacy': enable_plugins.contains('sierra-legacy'),
- 'simtech': enable_plugins.contains('simtech'),
- 'telit': enable_plugins.contains('telit'),
- 'thuraya': enable_plugins.contains('thuraya'),
- 'tplink': enable_plugins.contains('tplink'),
- 'ublox': enable_plugins.contains('ublox'),
- 'via': enable_plugins.contains('via'),
- 'wavecom': enable_plugins.contains('wavecom'),
- 'x22x': enable_plugins.contains('x22x'),
- 'zte': enable_plugins.contains('zte'),
-}, section: 'Plugins')
+summary(plugins_options, section: 'Plugins')
summary({
'gobject introspection': enable_gir,