From b94abc3735ca6f4b7f66783d1c39697574b6c4e6 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 18 Feb 2020 14:28:34 -0500 Subject: coredata: Fix crash when cmd_line_options contains booleans `meson setup --debug` puts a bool object in cmd_line_options dictionary that we have to convert to string. Fixes: #6646 --- mesonbuild/coredata.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 7bfbb7c..d94f2c0 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -819,6 +819,9 @@ def read_cmd_line_file(build_dir, options): # literal_eval to get it into the list of strings. options.native_file = ast.literal_eval(properties.get('native_file', '[]')) +def cmd_line_options_to_string(options): + return {k: str(v) for k, v in options.cmd_line_options.items()} + def write_cmd_line_file(build_dir, options): filename = get_cmd_line_file(build_dir) config = CmdLineFileParser() @@ -829,7 +832,7 @@ def write_cmd_line_file(build_dir, options): if options.native_file: properties['native_file'] = options.native_file - config['options'] = options.cmd_line_options + config['options'] = cmd_line_options_to_string(options) config['properties'] = properties with open(filename, 'w') as f: config.write(f) @@ -838,7 +841,7 @@ def update_cmd_line_file(build_dir, options): filename = get_cmd_line_file(build_dir) config = CmdLineFileParser() config.read(filename) - config['options'].update(options.cmd_line_options) + config['options'].update(cmd_line_options_to_string(options)) with open(filename, 'w') as f: config.write(f) -- cgit v1.1