From: Bruce Richardson Date: Tue, 20 Apr 2021 10:22:32 +0000 (+0100) Subject: lib: allow disabling optional libraries X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=0bf583222297;p=dpdk.git lib: allow disabling optional libraries Add support for the disable_libs option, to allow disabling the build of particular libraries. As part of this, maintain a list of what libraries can safely be disabled, without breaking the build - for now this list is solely those libraries which are not built on FreeBSD, kni, power and vhost. This list can be expanded by future patches. Signed-off-by: Bruce Richardson --- diff --git a/lib/meson.build b/lib/meson.build index 3a9a6c3be4..c9a20f65b7 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -81,6 +81,23 @@ if is_windows ] # only supported libraries for windows endif +optional_libs = [ + 'kni', + 'power', + 'vhost', +] + +disabled_libs = [] +opt_disabled_libs = run_command(list_dir_globs, get_option('disable_libs')).stdout().split() +foreach l:opt_disabled_libs + if not optional_libs.contains(l) + warning('Cannot disable mandatory library "@0@"'.format(l)) + continue + endif + disabled_libs += l +endforeach + + default_cflags = machine_args default_cflags += ['-DALLOW_EXPERIMENTAL_API'] default_cflags += ['-DALLOW_INTERNAL_API'] @@ -114,7 +131,12 @@ foreach l:libraries deps += ['eal'] endif - subdir(l) + if disabled_libs.contains(l) + build = false + reason = 'explicitly disabled via build config' + else + subdir(l) + endif if name != l warning('Library name, "@0@", and directory name, "@1@", do not match'.format(name, l)) endif diff --git a/meson_options.txt b/meson_options.txt index 229e936dc4..56bdfd0f0a 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,6 +6,8 @@ option('developer_mode', type: 'feature', description: 'turn on additional build checks relevant for DPDK developers') option('disable_drivers', type: 'string', value: '', description: 'Comma-separated list of drivers to explicitly disable.') +option('disable_libs', type: 'string', value: '', description: + 'Comma-separated list of libraries to explicitly disable. [NOTE: not all libs can be disabled]') option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-', description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.') option('enable_docs', type: 'boolean', value: false, description: