diff options
-rw-r--r-- | mesonbuild/mesonmain.py | 13 | ||||
-rw-r--r-- | mesonbuild/msetup.py | 6 |
2 files changed, 12 insertions, 7 deletions
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index 84555fc..d024deb 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.py @@ -27,15 +27,17 @@ import shutil from . import mesonlib from . import mlog -from . import mconf, mdist, minit, minstall, mintro, msetup, mtest, rewriter, msubprojects, munstable_coredata, mcompile, mdevenv from .mesonlib import MesonException, MesonBugException -from .wrap import wraptool -from .scripts import env2mfile # Note: when adding arguments, please also add them to the completion # scripts in $MESONSRC/data/shell-completions/ class CommandLineParser: def __init__(self): + # only import these once we do full argparse processing + from . import mconf, mdist, minit, minstall, mintro, msetup, mtest, rewriter, msubprojects, munstable_coredata, mcompile, mdevenv + from .scripts import env2mfile + from .wrap import wraptool + self.term_width = shutil.get_terminal_size().columns self.formatter = lambda prog: argparse.HelpFormatter(prog, max_help_position=int(self.term_width / 2), width=self.term_width) @@ -253,9 +255,8 @@ def run(original_args, mainfile): # need to go through argparse. if len(args) >= 2 and args[0] == '--internal': if args[1] == 'regenerate': - # Rewrite "meson --internal regenerate" command line to - # "meson --reconfigure" - args = ['setup', '--reconfigure'] + args[2:] + from . import msetup + return msetup.run(['--reconfigure'] + args[2:]) else: return run_script_command(args[1], args[2:]) diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py index 7fa18af..7c452d4 100644 --- a/mesonbuild/msetup.py +++ b/mesonbuild/msetup.py @@ -297,7 +297,11 @@ class MesonApp: if devenv: b.devenv.append(devenv) -def run(options: argparse.Namespace) -> int: +def run(options: T.Union[argparse.Namespace, T.List[str]]) -> int: + if not isinstance(options, argparse.Namespace): + parser = argparse.ArgumentParser() + add_arguments(parser) + options = parser.parse_args(options) coredata.parse_cmd_line_options(options) app = MesonApp(options) app.generate() |