diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-11-09 13:32:46 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2018-11-09 20:32:52 -0500 |
commit | 8aeb96777333f83c950a8d654c38a4c412235cf8 (patch) | |
tree | e59bdd778610733ccf98810bbaa00682c9db2774 | |
parent | 96f8842b7926b76d3034a8891dd785e09c0e6858 (diff) | |
download | meson-8aeb96777333f83c950a8d654c38a4c412235cf8.zip meson-8aeb96777333f83c950a8d654c38a4c412235cf8.tar.gz meson-8aeb96777333f83c950a8d654c38a4c412235cf8.tar.bz2 |
coredata: Do not use ':' as key delimited in cmd_line.txt
-rw-r--r-- | mesonbuild/coredata.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index cdfed7c..245741a 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -460,12 +460,18 @@ class CoreData: sub = 'In subproject {}: '.format(subproject) if subproject else '' mlog.warning('{}Unknown options: "{}"'.format(sub, unknown_options)) +class CmdLineFileParser(configparser.ConfigParser): + def __init__(self): + # We don't want ':' as key delimiter, otherwise it would break when + # storing subproject options like "subproject:option=value" + super().__init__(delimiters=['=']) + def get_cmd_line_file(build_dir): return os.path.join(build_dir, 'meson-private', 'cmd_line.txt') def read_cmd_line_file(build_dir, options): filename = get_cmd_line_file(build_dir) - config = configparser.ConfigParser() + config = CmdLineFileParser() config.read(filename) # Do a copy because config is not really a dict. options.cmd_line_options @@ -480,7 +486,7 @@ def read_cmd_line_file(build_dir, options): def write_cmd_line_file(build_dir, options): filename = get_cmd_line_file(build_dir) - config = configparser.ConfigParser() + config = CmdLineFileParser() properties = {} if options.cross_file is not None: @@ -493,7 +499,7 @@ def write_cmd_line_file(build_dir, options): def update_cmd_line_file(build_dir, options): filename = get_cmd_line_file(build_dir) - config = configparser.ConfigParser() + config = CmdLineFileParser() config.read(filename) config['options'].update(options.cmd_line_options) with open(filename, 'w') as f: |