build: skip config of explicitly disabled drivers
authorDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Thu, 7 May 2020 10:13:50 +0000 (12:13 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 19 May 2020 14:52:22 +0000 (16:52 +0200)
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@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
drivers/meson.build

index dc293b2..cfb6a83 100644 (file)
@@ -62,17 +62,14 @@ 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
-                       if drv_path == disable_path
-                               build = false
-                               reason = 'Explicitly disabled via build config'
-                       endif
-               endforeach
+               if disabled_drivers.contains(drv_path)
+                       build = false
+                       reason = 'Explicitly disabled via build config'
+               else
+                       # pull in driver directory which should update all the local variables
+                       subdir(drv_path)
+               endif
+
                if build
                        # get dependency objs from strings
                        shared_deps = ext_deps