summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-05-03 19:10:25 +0200
committerDylan Baker <dylan@pnwbakers.com>2025-05-07 09:43:43 -0700
commit9bff9de83486aa181ffccda41eca9e72ba196d5a (patch)
tree722dc5a2a155eb8d95c192bc0285a42a4324c00e
parent8f55a24cfb1fb02e428fcf3a1952fe80f4978fca (diff)
downloadmeson-9bff9de83486aa181ffccda41eca9e72ba196d5a.tar.gz
options: do not go back to list representation
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--mesonbuild/options.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/mesonbuild/options.py b/mesonbuild/options.py
index 0e637dcba..ee0093e60 100644
--- a/mesonbuild/options.py
+++ b/mesonbuild/options.py
@@ -1382,22 +1382,19 @@ class OptionStore:
keys = ', '.join(unknown_options)
raise MesonException(f'Unknown options: {keys}')
- def hacky_mchackface_back_to_list(self, optdict: T.Union[T.List[str], OptionDict]) -> T.List[str]:
- if isinstance(optdict, dict):
- return [f'{k}={v}' for k, v in optdict.items()]
- return optdict
-
def initialize_from_subproject_call(self,
subproject: str,
- spcall_default_options_in: OptionDict,
- project_default_options_in: T.Union[T.List[str], OptionDict],
+ spcall_default_options: OptionDict,
+ project_default_options: T.Union[T.List[str], OptionDict],
cmd_line_options: OptionDict) -> None:
is_first_invocation = True
- spcall_default_options = self.hacky_mchackface_back_to_list(spcall_default_options_in)
- project_default_options = self.hacky_mchackface_back_to_list(project_default_options_in)
- for o in itertools.chain(project_default_options, spcall_default_options):
- keystr, valstr = o.split('=', 1)
- key = OptionKey.from_string(keystr)
+ if isinstance(project_default_options, list):
+ project_default_options = self.optlist2optdict(project_default_options)
+ for keystr, valstr in itertools.chain(project_default_options.items(), spcall_default_options.items()):
+ if isinstance(keystr, str):
+ key = OptionKey.from_string(keystr)
+ else:
+ key = keystr
if key.subproject is None:
key = key.evolve(subproject=subproject)
elif key.subproject == subproject: