build,meson: Improve plugins option set

Improved the way the plugins are set to allow a smaller summary.
This commit is contained in:
Iñigo Martínez
2021-09-08 14:42:08 +02:00
committed by Aleksander Morgado
parent e075512fc1
commit 09a5052a77
2 changed files with 109 additions and 147 deletions

View File

@@ -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
foreach plugin_name, _: 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]
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
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,

View File

@@ -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',