build: fix compatibility with meson 0.41 onwards
authorBruce Richardson <bruce.richardson@intel.com>
Tue, 18 Sep 2018 10:55:52 +0000 (11:55 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 18 Sep 2018 13:18:52 +0000 (15:18 +0200)
Versions of meson prior to 0.47 flattened the parameters to the
"set_variable" function, which meant that the function could not take
array variables as a parameter. Therefore, we need to disable driver
tracking for those older versions, in order to maintain compatibility
with the minimum supported 0.41 version, and also v0.45 shipped in
Ubuntu 18.04 release.

Fixes: 806c45dd483d ("build: add configuration summary at end of config")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Timothy Redaelli <tredaelli@redhat.com>
drivers/meson.build
meson.build

index b6ce974..c5df313 100644 (file)
@@ -145,5 +145,8 @@ foreach class:driver_classes
                endif # build
        endforeach
 
-       set_variable(class + '_drivers', class_drivers)
+       if meson.version().version_compare('>=0.47')
+               # prior to 0.47, set_variable can't take array params
+               set_variable(class + '_drivers', class_drivers)
+       endif
 endforeach
index 7332e75..2ed1247 100644 (file)
@@ -89,18 +89,23 @@ foreach lib:enabled_libs
 endforeach
 message(output_message + '\n')
 
-output_message = '\n===============\nDrivers Enabled\n===============\n'
-foreach class:driver_classes
-       class_drivers = get_variable(class + '_drivers')
-       output_message += '\n' + class + ':\n\t'
-       output_count = 0
-       foreach drv:class_drivers
-               output_message += drv + ', '
-               output_count += 1
-               if output_count == 8
-                       output_message += '\n\t'
-                       output_count = 0
-               endif
+
+# prior to 0.47 set_variable didn't work with arrays, so we can't
+# track driver lists easily
+if meson.version().version_compare('>=0.47')
+       output_message = '\n===============\nDrivers Enabled\n===============\n'
+       foreach class:driver_classes
+               class_drivers = get_variable(class + '_drivers')
+               output_message += '\n' + class + ':\n\t'
+               output_count = 0
+               foreach drv:class_drivers
+                       output_message += drv + ', '
+                       output_count += 1
+                       if output_count == 8
+                               output_message += '\n\t'
+                               output_count = 0
+                       endif
+               endforeach
        endforeach
-endforeach
-message(output_message + '\n')
+       message(output_message + '\n')
+endif