diff options
author | Iñigo Martínez <inigomartinez@gmail.com> | 2021-09-08 14:42:08 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-09-10 08:39:37 +0000 |
commit | 09a5052a777c858b83baf9444306775ed5c50300 (patch) | |
tree | 8effb8494447c1cbcb9cbda373a0aac885be48a8 | |
parent | e075512fc1b7b0a0eb75975e0d6f02973f2daed7 (diff) | |
download | ModemManager-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.build | 164 | ||||
-rw-r--r-- | plugins/meson.build | 92 |
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', |