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