[dpdk-dev] [PATCH] build: don't parse build configs of explicitly disabled drivers

Bruce Richardson bruce.richardson at intel.com
Mon Mar 30 15:52:38 CEST 2020


On Thu, Mar 26, 2020 at 10:22:59AM +0100, Darek Stojaczyk wrote:
> Even when a PMD was disabled with meson's disable_drivers option
> its config file was still being parsed. Some of the PMD configs
> attempt to find a library they depend on and parse its header files
> with certain assumptions. If the library is found, but it's simply
> too old to contain the necessary header files, the meson build
> fails and it can only be fixed by either updating that library, or
> expanding the meson script for the faulty PMD.
> 
> While the latter should be still done for the sake of DPDK quality,
> an intermediate solution would be to skip building the faulty PMD
> - there's a chance we don't need it. That's what this patch allows.
> 
> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
> ---
>  drivers/meson.build | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/meson.build b/drivers/meson.build
> index 5502bf9924..a13c62a3b0 100644
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> @@ -60,9 +60,6 @@ foreach class:dpdk_driver_classes
>  		ext_deps = []
>  		pkgconfig_extra_libs = []
>  
> -		# pull in driver directory which should assign to each of the above
> -		subdir(drv_path)
> -
>  		# skip disabled drivers. For meson 0.49 change this to use
>  		# "in" keyword
>  		foreach disable_path: disabled_drivers
> @@ -71,6 +68,12 @@ foreach class:dpdk_driver_classes
>  				reason = 'Explicitly disabled via build config'
>  			endif
>  		endforeach
> +
> +		if build
> +			# pull in driver directory which should update all the local variables
> +			subdir(drv_path)
> +		endif
> +

Looking at this code and the meson docs again, I think this block and
previous can be simplified by using the array "contains()" method to avoid
the loop.

	if disabled_drivers.contains(drv_path)
		build = false
		reson = '....'
	else
		# pull in driver ...
		subdir(drv_path)
	endif

Regards,
/Bruce


More information about the dev mailing list