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 <bruce.richardson@intel.com>
This commit is contained in:
parent
7e06c0fe30
commit
0bf5832222
@ -81,6 +81,23 @@ if is_windows
|
|||||||
] # only supported libraries for windows
|
] # only supported libraries for windows
|
||||||
endif
|
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 = machine_args
|
||||||
default_cflags += ['-DALLOW_EXPERIMENTAL_API']
|
default_cflags += ['-DALLOW_EXPERIMENTAL_API']
|
||||||
default_cflags += ['-DALLOW_INTERNAL_API']
|
default_cflags += ['-DALLOW_INTERNAL_API']
|
||||||
@ -114,7 +131,12 @@ foreach l:libraries
|
|||||||
deps += ['eal']
|
deps += ['eal']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdir(l)
|
if disabled_libs.contains(l)
|
||||||
|
build = false
|
||||||
|
reason = 'explicitly disabled via build config'
|
||||||
|
else
|
||||||
|
subdir(l)
|
||||||
|
endif
|
||||||
if name != l
|
if name != l
|
||||||
warning('Library name, "@0@", and directory name, "@1@", do not match'.format(name, l))
|
warning('Library name, "@0@", and directory name, "@1@", do not match'.format(name, l))
|
||||||
endif
|
endif
|
||||||
|
@ -6,6 +6,8 @@ option('developer_mode', type: 'feature', description:
|
|||||||
'turn on additional build checks relevant for DPDK developers')
|
'turn on additional build checks relevant for DPDK developers')
|
||||||
option('disable_drivers', type: 'string', value: '', description:
|
option('disable_drivers', type: 'string', value: '', description:
|
||||||
'Comma-separated list of drivers to explicitly disable.')
|
'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-<VERSION>', description:
|
option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>', description:
|
||||||
'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')
|
'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')
|
||||||
option('enable_docs', type: 'boolean', value: false, description:
|
option('enable_docs', type: 'boolean', value: false, description:
|
||||||
|
Loading…
Reference in New Issue
Block a user