|
1 | 1 | # SPDX-License-Identifier: GPL-2.0-or-later |
2 | 2 |
|
3 | | -plugin_sources = [ |
4 | | - 'plugins/amzn/amzn-nvme.c', |
5 | | - 'plugins/dapustor/dapustor-nvme.c', |
6 | | - 'plugins/dell/dell-nvme.c', |
7 | | - 'plugins/dera/dera-nvme.c', |
8 | | - 'plugins/fdp/fdp.c', |
9 | | - 'plugins/huawei/huawei-nvme.c', |
10 | | - 'plugins/ibm/ibm-nvme.c', |
11 | | - 'plugins/innogrit/innogrit-nvme.c', |
12 | | - 'plugins/inspur/inspur-nvme.c', |
13 | | - 'plugins/intel/intel-nvme.c', |
14 | | - 'plugins/mangoboost/mangoboost-nvme.c', |
15 | | - 'plugins/memblaze/memblaze-nvme.c', |
16 | | - 'plugins/micron/micron-nvme.c', |
17 | | - 'plugins/nbft/nbft-plugin.c', |
18 | | - 'plugins/netapp/netapp-nvme.c', |
19 | | - 'plugins/nvidia/nvidia-nvme.c', |
20 | | - 'plugins/sandisk/sandisk-nvme.c', |
21 | | - 'plugins/sandisk/sandisk-utils.c', |
22 | | - 'plugins/scaleflux/sfx-nvme.c', |
23 | | - 'plugins/seagate/seagate-nvme.c', |
24 | | - 'plugins/shannon/shannon-nvme.c', |
25 | | - 'plugins/ssstc/ssstc-nvme.c', |
26 | | - 'plugins/toshiba/toshiba-nvme.c', |
27 | | - 'plugins/transcend/transcend-nvme.c', |
28 | | - 'plugins/virtium/virtium-nvme.c', |
29 | | - 'plugins/wdc/wdc-nvme.c', |
30 | | - 'plugins/wdc/wdc-utils.c', |
31 | | - 'plugins/ymtc/ymtc-nvme.c', |
32 | | - 'plugins/zns/zns.c', |
33 | | -] |
34 | | - |
35 | | -subdir('feat') |
36 | | -subdir('lm') |
37 | | -subdir('ocp') |
38 | | - |
39 | | -if conf.get('HAVE_SED_OPAL') != 0 |
40 | | - subdir('sed') |
| 3 | +# Define all available plugins and their source files |
| 4 | +all_plugins = { |
| 5 | + 'amzn': ['plugins/amzn/amzn-nvme.c'], |
| 6 | + 'dapustor': ['plugins/dapustor/dapustor-nvme.c'], |
| 7 | + 'dell': ['plugins/dell/dell-nvme.c'], |
| 8 | + 'dera': ['plugins/dera/dera-nvme.c'], |
| 9 | + 'fdp': ['plugins/fdp/fdp.c'], |
| 10 | + 'huawei': ['plugins/huawei/huawei-nvme.c'], |
| 11 | + 'ibm': ['plugins/ibm/ibm-nvme.c'], |
| 12 | + 'innogrit': ['plugins/innogrit/innogrit-nvme.c'], |
| 13 | + 'inspur': ['plugins/inspur/inspur-nvme.c'], |
| 14 | + 'intel': ['plugins/intel/intel-nvme.c'], |
| 15 | + 'mangoboost': ['plugins/mangoboost/mangoboost-nvme.c'], |
| 16 | + 'memblaze': ['plugins/memblaze/memblaze-nvme.c'], |
| 17 | + 'micron': ['plugins/micron/micron-nvme.c'], |
| 18 | + 'nbft': ['plugins/nbft/nbft-plugin.c'], |
| 19 | + 'netapp': ['plugins/netapp/netapp-nvme.c'], |
| 20 | + 'nvidia': ['plugins/nvidia/nvidia-nvme.c'], |
| 21 | + 'sandisk': ['plugins/sandisk/sandisk-nvme.c', 'plugins/sandisk/sandisk-utils.c'], |
| 22 | + 'scaleflux': ['plugins/scaleflux/sfx-nvme.c'], |
| 23 | + 'seagate': ['plugins/seagate/seagate-nvme.c'], |
| 24 | + 'shannon': ['plugins/shannon/shannon-nvme.c'], |
| 25 | + 'ssstc': ['plugins/ssstc/ssstc-nvme.c'], |
| 26 | + 'toshiba': ['plugins/toshiba/toshiba-nvme.c'], |
| 27 | + 'transcend': ['plugins/transcend/transcend-nvme.c'], |
| 28 | + 'virtium': ['plugins/virtium/virtium-nvme.c'], |
| 29 | + 'wdc': ['plugins/wdc/wdc-nvme.c', 'plugins/wdc/wdc-utils.c'], |
| 30 | + 'ymtc': ['plugins/ymtc/ymtc-nvme.c'], |
| 31 | + 'zns': ['plugins/zns/zns.c'], |
| 32 | +} |
| 33 | + |
| 34 | +# Get the list of plugins to build |
| 35 | +plugins_option = get_option('plugins') |
| 36 | + |
| 37 | +build_all = false |
| 38 | +if plugins_option == [] |
| 39 | + # Build no plugins when explicitly set to empty |
| 40 | + selected_plugins = [] |
| 41 | +elif plugins_option == ['all'] |
| 42 | + # Build all plugins (default) |
| 43 | + selected_plugins = all_plugins.keys() |
| 44 | + build_all = true |
| 45 | +else |
| 46 | + selected_plugins = plugins_option |
| 47 | +endif |
| 48 | + |
| 49 | +# Build the plugin_sources list from simple plugins |
| 50 | +plugin_sources = [] |
| 51 | +foreach plugin_name : selected_plugins |
| 52 | + plugin_name_stripped = plugin_name.strip() |
| 53 | + if plugin_name_stripped in all_plugins |
| 54 | + plugin_sources += all_plugins[plugin_name_stripped] |
| 55 | + elif plugin_name_stripped != '' |
| 56 | + # Only warn if it's not a special plugin handled below |
| 57 | + if plugin_name_stripped not in ['feat', 'lm', 'ocp', 'sed', 'solidigm'] |
| 58 | + warning('Unknown plugin: @0@'.format(plugin_name_stripped)) |
| 59 | + endif |
| 60 | + endif |
| 61 | +endforeach |
| 62 | + |
| 63 | +if build_all or 'feat' in selected_plugins |
| 64 | + subdir('feat') |
| 65 | +endif |
| 66 | + |
| 67 | +if build_all or 'lm' in selected_plugins |
| 68 | + subdir('lm') |
| 69 | +endif |
| 70 | + |
| 71 | +if build_all or 'ocp' in selected_plugins |
| 72 | + subdir('ocp') |
| 73 | +endif |
| 74 | + |
| 75 | +if (build_all or 'sed' in selected_plugins) and conf.get('HAVE_SED_OPAL') != 0 |
| 76 | + subdir('sed') |
41 | 77 | endif |
42 | 78 |
|
43 | | -if json_c_dep.found() |
44 | | - subdir('solidigm') |
| 79 | +if (build_all or 'solidigm' in selected_plugins) and json_c_dep.found() |
| 80 | + subdir('solidigm') |
45 | 81 | endif |
0 commit comments