aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/mesonmain.py13
-rw-r--r--mesonbuild/msetup.py6
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()