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.stojac...@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

Reply via email to