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 <bruce.richardson@intel.com>
Tested-by: Timothy Redaelli <tredaelli@redhat.com>
This commit is contained in:
Bruce Richardson 2018-09-18 11:55:52 +01:00 committed by Thomas Monjalon
parent e4f2047190
commit 77a5e7cdb2
2 changed files with 23 additions and 15 deletions

View 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

View 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