build: support disabling drivers with meson
Add support for a new build option to turn off certain drivers. Any other drivers which depend on the one being disabled will also be disabled with a suitable debug message. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
parent
7f8f7f4d0a
commit
6f80f1cd22
@ -16,6 +16,8 @@ dpdk_driver_classes = ['common',
|
||||
'baseband', # depends on common and bus.
|
||||
'raw'] # depends on common, bus, mempool, net and event.
|
||||
|
||||
disabled_drivers = get_option('disable_drivers').split(',')
|
||||
|
||||
default_cflags = machine_args
|
||||
if cc.has_argument('-Wno-format-truncation')
|
||||
default_cflags += '-Wno-format-truncation'
|
||||
@ -59,17 +61,23 @@ foreach class:dpdk_driver_classes
|
||||
# pull in driver directory which should assign to each of the above
|
||||
subdir(drv_path)
|
||||
|
||||
if build
|
||||
if drv_path in disabled_drivers
|
||||
build = false
|
||||
reason = 'Explicitly disabled via build config'
|
||||
elif build
|
||||
# get dependency objs from strings
|
||||
shared_deps = ext_deps
|
||||
static_deps = ext_deps
|
||||
foreach d:deps
|
||||
if not is_variable('shared_rte_' + d)
|
||||
error('Missing internal dependency "@0@" for @1@ [@2@]'
|
||||
build = false
|
||||
reason = 'Missing internal dependency, "@0@"'.format(d)
|
||||
message('Disabling @1@ [@2@]: missing internal dependency "@0@"'
|
||||
.format(d, name, 'drivers/' + drv_path))
|
||||
else
|
||||
shared_deps += [get_variable('shared_rte_' + d)]
|
||||
static_deps += [get_variable('static_rte_' + d)]
|
||||
endif
|
||||
shared_deps += [get_variable('shared_rte_' + d)]
|
||||
static_deps += [get_variable('static_rte_' + d)]
|
||||
endforeach
|
||||
endif
|
||||
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
option('allow_invalid_socket_id', type: 'boolean', value: false,
|
||||
description: 'allow out-of-range NUMA socket id\'s for platforms that don\'t report the value correctly')
|
||||
option('disable_drivers', type: 'string', value: '',
|
||||
description: 'Comma-separated list of drivers to explicitly disable.')
|
||||
option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
|
||||
description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')
|
||||
option('enable_docs', type: 'boolean', value: false,
|
||||
|
Loading…
Reference in New Issue
Block a user