aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-02-18 14:28:34 -0500
committerNirbheek Chauhan <nirbheek@centricular.com>2020-02-20 00:25:41 +0530
commitb94abc3735ca6f4b7f66783d1c39697574b6c4e6 (patch)
tree2c6d0b3d6d7e3f0752b109349c2be833dcbcf0e7
parentcfa04155ebf65398c55ab3fc461f398d1d2997c7 (diff)
downloadmeson-b94abc3735ca6f4b7f66783d1c39697574b6c4e6.zip
meson-b94abc3735ca6f4b7f66783d1c39697574b6c4e6.tar.gz
meson-b94abc3735ca6f4b7f66783d1c39697574b6c4e6.tar.bz2
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
-rw-r--r--mesonbuild/coredata.py7
1 files 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)