From 77a5e7cdb27b987ccc3a72be275d4cee1ba86fdb Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Tue, 18 Sep 2018 11:55:52 +0100 Subject: [PATCH] build: fix compatibility with meson 0.41 onwards 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 Tested-by: Timothy Redaelli --- drivers/meson.build | 5 ++++- meson.build | 33 +++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/drivers/meson.build b/drivers/meson.build index b6ce974de3..c5df313dd2 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -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 diff --git a/meson.build b/meson.build index 7332e75b54..2ed1247a3d 100644 --- a/meson.build +++ b/meson.build @@ -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 -- 2.20.1