diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-05-03 19:10:25 +0200 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-05-07 09:43:43 -0700 |
| commit | 9bff9de83486aa181ffccda41eca9e72ba196d5a (patch) | |
| tree | 722dc5a2a155eb8d95c192bc0285a42a4324c00e | |
| parent | 8f55a24cfb1fb02e428fcf3a1952fe80f4978fca (diff) | |
| download | meson-9bff9de83486aa181ffccda41eca9e72ba196d5a.tar.gz | |
options: do not go back to list representation
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | mesonbuild/options.py | 21 |
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: |
