summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-08-30 10:52:17 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2025-02-05 17:45:38 +0200
commit164a18d84f4543669e5cab75490ff3629aa961d4 (patch)
tree1990714a4246e172872fa97e545d0d9598c01315
parentba3460eb11bbceaf4fef7352bf286cf27184c99a (diff)
downloadmeson-164a18d84f4543669e5cab75490ff3629aa961d4.tar.gz
options: fix typing of add_to_argparse
Which wants a string, but then passes that string to a function that wants an OptionKey, which means that we'll always miss the lookup in BULITIN_DIR_NOPREFIX_OPTIONS, and return the default. The only case this gets used we cast an OptionKey to str, and then pass that. So instead, do the cast inside the function when necessary and pass the OptionKey
-rw-r--r--mesonbuild/coredata.py6
-rw-r--r--mesonbuild/options.py6
2 files changed, 6 insertions, 6 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index 5469616f8..6b8cec63f 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -868,10 +868,10 @@ def save(obj: CoreData, build_dir: str) -> str:
def register_builtin_arguments(parser: argparse.ArgumentParser) -> None:
for n, b in options.BUILTIN_OPTIONS.items():
- b.add_to_argparse(str(n), parser, '')
+ b.add_to_argparse(n, parser, '')
for n, b in options.BUILTIN_OPTIONS_PER_MACHINE.items():
- b.add_to_argparse(str(n), parser, ' (just for host machine)')
- b.add_to_argparse(str(n.as_build()), parser, ' (just for build machine)')
+ b.add_to_argparse(n, parser, ' (just for host machine)')
+ b.add_to_argparse(n.as_build(), parser, ' (just for build machine)')
parser.add_argument('-D', action='append', dest='projectoptions', default=[], metavar="option",
help='Set the value of an option, can be used several times to set multiple options.')
diff --git a/mesonbuild/options.py b/mesonbuild/options.py
index ae580785e..b61babec2 100644
--- a/mesonbuild/options.py
+++ b/mesonbuild/options.py
@@ -589,7 +589,7 @@ class BuiltinOption(T.Generic[_T]):
pass
return self.default
- def add_to_argparse(self, name: str, parser: argparse.ArgumentParser, help_suffix: str) -> None:
+ def add_to_argparse(self, name: OptionKey, parser: argparse.ArgumentParser, help_suffix: str) -> None:
kwargs: ArgparseKWs = {}
c = self._argparse_choices()
@@ -602,9 +602,9 @@ class BuiltinOption(T.Generic[_T]):
if c and not b:
kwargs['choices'] = c
kwargs['default'] = argparse.SUPPRESS
- kwargs['dest'] = name
+ kwargs['dest'] = str(name)
- cmdline_name = self.argparse_name_to_arg(name)
+ cmdline_name = self.argparse_name_to_arg(str(name))
parser.add_argument(cmdline_name, help=h + help_suffix, **kwargs)