summaryrefslogtreecommitdiff
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-09-10 08:39:37 +0000
commit09a5052a777c858b83baf9444306775ed5c50300 (patch)
tree8effb8494447c1cbcb9cbda373a0aac885be48a8
parente075512fc1b7b0a0eb75975e0d6f02973f2daed7 (diff)
downloadModemManager-09a5052a777c858b83baf9444306775ed5c50300.tar.gz
build,meson: Improve plugins option set
Improved the way the plugins are set to allow a smaller summary.
-rw-r--r--meson.build164
-rw-r--r--plugins/meson.build92
2 files changed, 109 insertions, 147 deletions
diff --git a/meson.build b/meson.build
index 791585360..ad406f2f3 100644
--- a/meson.build
+++ b/meson.build
@@ -268,75 +268,85 @@ enable_vapi = get_option('vapi')
# gtkdoc support
enable_gtk_doc = get_option('gtk_doc')
+enable_plugins = not get_option('plugin_disable_all')
+
plugins_shared = {
- 'foxconn': enable_mbim,
- 'icera': true,
- 'novatel': true,
- 'option': true,
- 'sierra': true,
- 'telit': true,
- 'xmm': true,
+ 'foxconn': enable_mbim and enable_plugins,
+ 'icera': enable_plugins,
+ 'novatel': enable_plugins,
+ 'option': enable_plugins,
+ 'sierra': enable_plugins,
+ 'telit': enable_plugins,
+ 'xmm': enable_plugins,
}
plugins_options = {
- 'altair-lte': [],
- 'anydata': [],
- 'broadmobi': [],
- 'cinterion': [],
+ 'altair-lte': enable_plugins,
+ 'anydata': enable_plugins,
+ 'broadmobi': enable_plugins,
+ 'cinterion': enable_plugins,
+ 'dell': enable_plugins,
+ 'dlink': enable_plugins,
+ 'fibocom': enable_plugins,
+ 'foxconn': enable_plugins,
+ 'generic': enable_plugins,
+ 'gosuncn': enable_plugins,
+ 'haier': enable_plugins,
+ 'huawei': enable_plugins,
+ 'iridium': enable_plugins,
+ 'linktop': enable_plugins,
+ 'longcheer': enable_plugins,
+ 'mbm': enable_plugins,
+ 'motorola': enable_plugins,
+ 'mtk': enable_plugins,
+ 'nokia': enable_plugins,
+ 'nokia-icera': enable_plugins,
+ 'novatel': enable_plugins,
+ 'novatel-lte': enable_plugins,
+ 'option': enable_plugins,
+ 'option-hso': enable_plugins,
+ 'pantech': enable_plugins,
+ 'qcom-soc': enable_plugins,
+ 'quectel': enable_plugins,
+ 'samsung': enable_plugins,
+ 'sierra-legacy': enable_plugins,
+ 'sierra': enable_plugins,
+ 'simtech': enable_plugins,
+ 'telit': enable_plugins,
+ 'thuraya': enable_plugins,
+ 'tplink': enable_plugins,
+ 'ublox': enable_plugins,
+ 'via': enable_plugins,
+ 'wavecom': enable_plugins,
+ 'x22x': enable_plugins,
+ 'zte': enable_plugins,
+}
+
+plugins_options_reqs = {
'dell': ['foxconn', 'novatel', 'sierra', 'telit', 'xmm'],
- 'dlink': [],
'fibocom': ['xmm'],
'foxconn': ['foxconn'],
- 'generic': [],
- 'gosuncn': [],
- 'haier': [],
- 'huawei': [],
- 'iridium': [],
- 'linktop': [],
- 'longcheer': [],
- 'mbm': [],
- 'motorola': [],
- 'mtk': [],
- 'nokia': [],
'nokia-icera': ['icera'],
'novatel': ['novatel'],
- 'novatel-lte': [],
'option': ['option'],
'option-hso': ['option'],
- 'pantech': [],
- 'qcom-soc': [],
- 'quectel': [],
'samsung': ['icera'],
'sierra-legacy': ['icera', 'sierra'],
'sierra': ['xmm'],
- 'simtech': [],
'telit': ['telit'],
- 'thuraya': [],
- 'tplink': [],
- 'ublox': [],
- 'via': [],
- 'wavecom': [],
- 'x22x': [],
'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
+foreach plugin_name, _: plugins_options
+ if get_option('plugin_' + plugin_name.underscorify())
+ foreach plugin_req: plugins_options_reqs.get(plugin_name, [])
+ if not plugins_shared[plugin_req]
+ assert(not enable_plugins, '@0@ required @1@ but is not available'.format(plugin_name, plugin_req))
+ plugins_shared += {plugin_req: true}
+ endif
+ endforeach
+ endif
+endforeach
version_conf = {
'MM_MAJOR_VERSION': mm_major_version,
@@ -400,57 +410,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,
diff --git a/plugins/meson.build b/plugins/meson.build
index 8a10e3219..adc0adb58 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -37,7 +37,7 @@ plugins_data = []
plugins_udev_rules = []
# Common Foxconn modem support library (MBIM only)
-if enable_plugins_shared.contains('foxconn')
+if plugins_shared['foxconn']
foxconn_inc = include_directories('foxconn')
sources = files(
@@ -57,7 +57,7 @@ if enable_plugins_shared.contains('foxconn')
endif
# common icera support
-if enable_plugins_shared.contains('icera')
+if plugins_shared['icera']
icera_inc = include_directories('icera')
common_c_args = '-DMM_MODULE_NAME="shared-icera"'
@@ -77,7 +77,7 @@ if enable_plugins_shared.contains('icera')
endif
# common novatel support
-if enable_plugins_shared.contains('novatel')
+if plugins_shared['novatel']
novatel_inc = include_directories('novatel')
sources = files(
@@ -93,7 +93,7 @@ if enable_plugins_shared.contains('novatel')
endif
# common option support
-if enable_plugins_shared.contains('option')
+if plugins_shared['option']
sources = files(
'option/mm-broadband-modem-option.c',
'option/mm-shared.c',
@@ -108,7 +108,7 @@ if enable_plugins_shared.contains('option')
endif
# common sierra support
-if enable_plugins_shared.contains('sierra')
+if plugins_shared['sierra']
sierra_inc = include_directories('sierra')
common_c_args = '-DMM_MODULE_NAME="shared-sierra"'
@@ -130,7 +130,7 @@ if enable_plugins_shared.contains('sierra')
endif
# common telit support
-if enable_plugins_shared.contains('telit')
+if plugins_shared['telit']
telit_inc = include_directories('telit')
common_c_args = '-DMM_MODULE_NAME="shared-telit"'
@@ -174,7 +174,7 @@ if enable_plugins_shared.contains('telit')
endif
# common xmm support
-if enable_plugins_shared.contains('xmm')
+if plugins_shared['xmm']
xmm_inc = include_directories('xmm')
common_c_args = '-DMM_MODULE_NAME="shared-xmm"'
@@ -198,7 +198,7 @@ if enable_plugins_shared.contains('xmm')
endif
# plugin: altair lte
-if enable_plugins.contains('altair-lte')
+if plugins_options['altair-lte']
common_c_args = '-DMM_MODULE_NAME="altair-lte"'
sources = files(
@@ -216,7 +216,7 @@ if enable_plugins.contains('altair-lte')
endif
# plugin: anydata
-if enable_plugins.contains('anydata')
+if plugins_options['anydata']
sources = files(
'anydata/mm-broadband-modem-anydata.c',
'anydata/mm-plugin-anydata.c',
@@ -229,7 +229,7 @@ if enable_plugins.contains('anydata')
endif
# plugin: broadmobi
-if enable_plugins.contains('broadmobi')
+if plugins_options['broadmobi']
c_args = [
'-DMM_MODULE_NAME="broadmobi"',
'-DTESTUDEVRULESDIR_BROADMOBI="@0@"'.format(plugins_dir / 'broadmobi'),
@@ -244,7 +244,7 @@ if enable_plugins.contains('broadmobi')
endif
# plugin: cinterion (previously siemens)
-if enable_plugins.contains('cinterion')
+if plugins_options['cinterion']
common_c_args = [
'-DMM_MODULE_NAME="cinterion"',
'-DTESTUDEVRULESDIR_CINTERION="@0@"'.format(plugins_dir / 'cinterion'),
@@ -276,7 +276,7 @@ if enable_plugins.contains('cinterion')
endif
# plugin: dell
-if enable_plugins.contains('dell')
+if plugins_options['dell']
incs = [
top_inc,
foxconn_inc,
@@ -300,7 +300,7 @@ if enable_plugins.contains('dell')
endif
# plugin: dlink
-if enable_plugins.contains('dlink')
+if plugins_options['dlink']
c_args = [
'-DMM_MODULE_NAME="d-link"',
'-DTESTUDEVRULESDIR_DLINK="@0@"'.format(plugins_dir / 'dlink'),
@@ -315,7 +315,7 @@ if enable_plugins.contains('dlink')
endif
# plugin: fibocom
-if enable_plugins.contains('fibocom')
+if plugins_options['fibocom']
incs = [
top_inc,
xmm_inc,
@@ -335,7 +335,7 @@ if enable_plugins.contains('fibocom')
endif
# plugin: foxconn
-if enable_plugins.contains('foxconn')
+if plugins_options['foxconn']
foxconn_dir = plugins_dir / 'foxconn'
c_args = [
@@ -358,7 +358,7 @@ if enable_plugins.contains('foxconn')
endif
# plugin: generic
-if enable_plugins.contains('generic')
+if plugins_options['generic']
# FIXME
'''
15/16 test-service-generic FAIL 0.02s killed by signal 5 SIGTRAP
@@ -385,7 +385,7 @@ if enable_plugins.contains('generic')
endif
# plugin: gosuncn
-if enable_plugins.contains('gosuncn')
+if plugins_options['gosuncn']
c_args = [
'-DMM_MODULE_NAME="gosuncn"',
'-DTESTUDEVRULESDIR_GOSUNCN="@0@"'.format(plugins_dir / 'gosuncn'),
@@ -400,7 +400,7 @@ if enable_plugins.contains('gosuncn')
endif
# plugin: haier
-if enable_plugins.contains('haier')
+if plugins_options['haier']
c_args = [
'-DMM_MODULE_NAME="haier"',
'-DTESTUDEVRULESDIR_HAIER="@0@"'.format(plugins_dir / 'haier'),
@@ -415,7 +415,7 @@ if enable_plugins.contains('haier')
endif
# plugin: huawei
-if enable_plugins.contains('huawei')
+if plugins_options['huawei']
huawei_inc = include_directories('huawei')
common_c_args = ['-DTESTUDEVRULESDIR_HUAWEI="@0@"'.format(plugins_dir / 'huawei')]
@@ -458,7 +458,7 @@ if enable_plugins.contains('huawei')
endif
# plugin: iridium
-if enable_plugins.contains('iridium')
+if plugins_options['iridium']
sources = files(
'iridium/mm-bearer-iridium.c',
'iridium/mm-broadband-modem-iridium.c',
@@ -473,7 +473,7 @@ if enable_plugins.contains('iridium')
endif
# plugin: linktop
-if enable_plugins.contains('linktop')
+if plugins_options['linktop']
common_c_args = '-DMM_MODULE_NAME="linktop"'
sources = files(
@@ -490,7 +490,7 @@ if enable_plugins.contains('linktop')
endif
# plugin: longcheer (and rebranded dongles)
-if enable_plugins.contains('longcheer')
+if plugins_options['longcheer']
sources = files(
'longcheer/mm-broadband-modem-longcheer.c',
'longcheer/mm-plugin-longcheer.c',
@@ -510,7 +510,7 @@ if enable_plugins.contains('longcheer')
endif
# plugin: ericsson mbm
-if enable_plugins.contains('mbm')
+if plugins_options['mbm']
common_c_args = ['-DTESTUDEVRULESDIR_MBM="@0@"'.format(plugins_dir / 'mbm')]
sources = files(
@@ -531,7 +531,7 @@ if enable_plugins.contains('mbm')
endif
# plugin: motorola
-if enable_plugins.contains('motorola')
+if plugins_options['motorola']
sources = files(
'motorola/mm-broadband-modem-motorola.c',
'motorola/mm-plugin-motorola.c',
@@ -544,7 +544,7 @@ if enable_plugins.contains('motorola')
endif
# plugin: mtk
-if enable_plugins.contains('mtk')
+if plugins_options['mtk']
sources = files(
'mtk/mm-broadband-modem-mtk.c',
'mtk/mm-plugin-mtk.c',
@@ -564,7 +564,7 @@ if enable_plugins.contains('mtk')
endif
# plugin: nokia
-if enable_plugins.contains('nokia')
+if plugins_options['nokia']
sources = files(
'nokia/mm-broadband-modem-nokia.c',
'nokia/mm-plugin-nokia.c',
@@ -578,7 +578,7 @@ if enable_plugins.contains('nokia')
endif
# plugin: nokia (icera)
-if enable_plugins.contains('nokia-icera')
+if plugins_options['nokia-icera']
c_args = [
'-DMM_MODULE_NAME="nokia-icera"',
'-DTESTUDEVRULESDIR_NOKIA_ICERA="@0@"'.format(plugins_dir / 'nokia'),
@@ -593,7 +593,7 @@ if enable_plugins.contains('nokia-icera')
endif
# plugin: novatel non-lte
-if enable_plugins.contains('novatel')
+if plugins_options['novatel']
plugins += {'plugin-novatel': {
'plugin': true,
'module': {'sources': files('novatel/mm-plugin-novatel.c'), 'include_directories': top_inc, 'c_args': '-DMM_MODULE_NAME="novatel"'}
@@ -601,7 +601,7 @@ if enable_plugins.contains('novatel')
endif
# plugin: novatel lte
-if enable_plugins.contains('novatel-lte')
+if plugins_options['novatel-lte']
sources = files(
'novatel/mm-plugin-novatel-lte.c',
'novatel/mm-broadband-modem-novatel-lte.c',
@@ -616,7 +616,7 @@ if enable_plugins.contains('novatel-lte')
endif
# plugin: option
-if enable_plugins.contains('option')
+if plugins_options['option']
plugins += {'plugin-option': {
'plugin': true,
'module': {'sources': files('option/mm-plugin-option.c'), 'include_directories': top_inc, 'c_args': '-DMM_MODULE_NAME="option"'}
@@ -624,7 +624,7 @@ if enable_plugins.contains('option')
endif
# plugin: option hso
-if enable_plugins.contains('option-hso')
+if plugins_options['option-hso']
sources = files(
'option/mm-plugin-hso.c',
'option/mm-broadband-bearer-hso.c',
@@ -638,7 +638,7 @@ if enable_plugins.contains('option-hso')
endif
# plugin: pantech
-if enable_plugins.contains('pantech')
+if plugins_options['pantech']
sources = files(
'pantech/mm-broadband-modem-pantech.c',
'pantech/mm-plugin-pantech.c',
@@ -652,7 +652,7 @@ if enable_plugins.contains('pantech')
endif
# plugin: qcom-soc
-if enable_plugins.contains('qcom-soc')
+if plugins_options['qcom-soc']
sources = files(
'qcom-soc/mm-broadband-modem-qmi-qcom-soc.c',
'qcom-soc/mm-plugin-qcom-soc.c',
@@ -672,7 +672,7 @@ if enable_plugins.contains('qcom-soc')
endif
# plugin: quectel
-if enable_plugins.contains('quectel')
+if plugins_options['quectel']
common_c_args = ['-DTESTUDEVRULESDIR_QUECTEL="@0@"'.format(plugins_dir / 'quectel')]
sources = files(
@@ -700,7 +700,7 @@ if enable_plugins.contains('quectel')
endif
# plugin: samsung
-if enable_plugins.contains('samsung')
+if plugins_options['samsung']
sources = files(
'samsung/mm-broadband-modem-samsung.c',
'samsung/mm-plugin-samsung.c',
@@ -713,7 +713,7 @@ if enable_plugins.contains('samsung')
endif
# plugin: sierra (legacy)
-if enable_plugins.contains('sierra-legacy')
+if plugins_options['sierra-legacy']
sources = files(
'sierra/mm-broadband-modem-sierra-icera.c',
'sierra/mm-plugin-sierra-legacy.c',
@@ -726,7 +726,7 @@ if enable_plugins.contains('sierra-legacy')
endif
# plugin: sierra (new QMI or MBIM modems)
-if enable_plugins.contains('sierra')
+if plugins_options['sierra']
plugins += {'plugin-sierra': {
'plugin': true,
'module': {'sources': files('sierra/mm-plugin-sierra.c'), 'include_directories': [top_inc, xmm_inc], 'c_args': '-DMM_MODULE_NAME="sierra"'}
@@ -736,7 +736,7 @@ if enable_plugins.contains('sierra')
endif
# plugin: simtech
-if enable_plugins.contains('simtech')
+if plugins_options['simtech']
common_c_args = ['-DTESTUDEVRULESDIR_SIMTECH="@0@"'.format(plugins_dir / 'simtech')]
sources = files(
@@ -760,7 +760,7 @@ if enable_plugins.contains('simtech')
endif
# plugin: telit
-if enable_plugins.contains('telit')
+if plugins_options['telit']
c_args = [
'-DMM_MODULE_NAME="telit"',
'-DTESTUDEVRULESDIR_TELIT="@0@"'.format(plugins_dir / 'telit'),
@@ -775,7 +775,7 @@ if enable_plugins.contains('telit')
endif
# plugin: thuraya xt
-if enable_plugins.contains('thuraya')
+if plugins_options['thuraya']
common_c_args = ['-DMM_MODULE_NAME="thuraya"']
sources = files(
@@ -792,7 +792,7 @@ if enable_plugins.contains('thuraya')
endif
# plugin: tplink
-if enable_plugins.contains('tplink')
+if plugins_options['tplink']
c_args = [
'-DMM_MODULE_NAME="tp-link"',
'-DTESTUDEVRULESDIR_TPLINK="@0@"'.format(plugins_dir / 'tplink'),
@@ -807,7 +807,7 @@ if enable_plugins.contains('tplink')
endif
# plugin: u-blox
-if enable_plugins.contains('ublox')
+if plugins_options['ublox']
ublox_inc = include_directories('ublox')
common_c_args = '-DMM_MODULE_NAME="u-blox"'
@@ -849,7 +849,7 @@ if enable_plugins.contains('ublox')
endif
# plugin: via
-if enable_plugins.contains('via')
+if plugins_options['via']
sources = files(
'via/mm-broadband-modem-via.c',
'via/mm-plugin-via.c',
@@ -862,7 +862,7 @@ if enable_plugins.contains('via')
endif
# plugin: wavecom (now sierra airlink)
-if enable_plugins.contains('wavecom')
+if plugins_options['wavecom']
sources = files(
'wavecom/mm-broadband-modem-wavecom.c',
'wavecom/mm-plugin-wavecom.c',
@@ -875,7 +875,7 @@ if enable_plugins.contains('wavecom')
endif
# plugin: alcatel/TCT/JRD x220D and possibly others
-if enable_plugins.contains('x22x')
+if plugins_options['x22x']
sources = files(
'x22x/mm-broadband-modem-x22x.c',
'x22x/mm-plugin-x22x.c',
@@ -895,7 +895,7 @@ if enable_plugins.contains('x22x')
endif
# plugin: zte
-if enable_plugins.contains('zte')
+if plugins_options['zte']
sources = files(
'zte/mm-broadband-modem-zte.c',
'zte/mm-broadband-modem-zte-icera.c',