diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2020-11-30 16:49:18 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2021-01-04 12:15:41 -0800 |
| commit | e2ef6930ff0b88beed6aeee068b4cf37037d5d9d (patch) | |
| tree | 19029df136812d0e56748e4f4b08154c17fddff1 /mesonbuild/mconf.py | |
| parent | b37f0cce2c9d94223caf5730af508c463e125457 (diff) | |
| download | meson-e2ef6930ff0b88beed6aeee068b4cf37037d5d9d.tar.gz | |
use OptionKey for coredata.user_options
Diffstat (limited to 'mesonbuild/mconf.py')
| -rw-r--r-- | mesonbuild/mconf.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/mesonbuild/mconf.py b/mesonbuild/mconf.py index 24638ebd3..9a68f7da6 100644 --- a/mesonbuild/mconf.py +++ b/mesonbuild/mconf.py @@ -19,6 +19,7 @@ import typing as T if T.TYPE_CHECKING: import argparse + from .coredata import OptionKey, UserOption def add_arguments(parser: 'argparse.ArgumentParser') -> None: coredata.register_builtin_arguments(parser) @@ -107,7 +108,7 @@ class Conf: else: print('{0:{width[0]}} {1:{width[1]}} {3}'.format(*line, width=col_widths)) - def split_options_per_subproject(self, options): + def split_options_per_subproject(self, options: T.Dict[str, 'UserOption']) -> T.Dict[str, T.Dict[str, 'UserOption']]: result = {} for k, o in options.items(): subproject = '' @@ -119,6 +120,18 @@ class Conf: result.setdefault(subproject, {})[k] = o return result + def split_options_per_subproject2(self, options: 'coredata.KeyedOptionDictType') -> T.Dict[str, T.Dict[str, 'UserOption']]: + result = {} + for k, o in options.items(): + subproject = k.subproject + if k.subproject: + k = k.as_root() + if o.yielding and k in options: + self.yielding_options.add(k) + self.all_subprojects.add(subproject) + result.setdefault(subproject, {})[str(k)] = o + return result + def _add_line(self, name, value, choices, descr): self.name_col.append(' ' * self.print_margin + name) self.value_col.append(value) @@ -211,7 +224,7 @@ class Conf: dict(self.coredata.flatten_lang_iterator( (insert_build_prefix(k), o) for k, o in self.coredata.compiler_options.build.items()))) - project_options = self.split_options_per_subproject(self.coredata.user_options) + project_options = self.split_options_per_subproject2(self.coredata.user_options) show_build_options = self.default_values_only or self.build.environment.is_cross_build() self.add_section('Main project options') |
