aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mesonmain.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-07-15 08:53:41 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2017-08-02 22:00:09 +0300
commitfa278f351fe3d6924b4d1961f77b5b4a36e133f8 (patch)
tree9789308c29ccb82fa7ba4e7d30789b4c49aec5fd /mesonbuild/mesonmain.py
parent0dd9ace5ccbae7c48f2675dfe387e6b7e778f664 (diff)
downloadmeson-fa278f351fe3d6924b4d1961f77b5b4a36e133f8.zip
meson-fa278f351fe3d6924b4d1961f77b5b4a36e133f8.tar.gz
meson-fa278f351fe3d6924b4d1961f77b5b4a36e133f8.tar.bz2
Add command multiplexer to main Meson invoker.
Diffstat (limited to 'mesonbuild/mesonmain.py')
-rw-r--r--mesonbuild/mesonmain.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py
index 0164945..9f7bb0b 100644
--- a/mesonbuild/mesonmain.py
+++ b/mesonbuild/mesonmain.py
@@ -263,11 +263,32 @@ def run_script_command(args):
return cmdfunc(cmdargs)
def run(mainfile, args):
- if sys.version_info < (3, 3):
- print('Meson works correctly only with python 3.3+.')
+ if sys.version_info < (3, 4):
+ print('Meson works correctly only with python 3.4+.')
print('You have python %s.' % sys.version)
print('Please update your environment')
return 1
+ if len(args) > 0:
+ # First check if we want to run a subcommand.
+ cmd_name = args[0]
+ remaining_args = args[1:]
+ if cmd_name == 'test':
+ return mtest.run(remaining_args)
+ elif cmd_name == 'setup':
+ args = remaining_args
+ # FALLTROUGH like it's 1972.
+ elif cmd_name == 'introspect':
+ return mintro.run(remaining_args)
+ elif cmd_name == 'test':
+ return mtest.run(remaining_args)
+ elif cmd_name == 'rewrite':
+ return rewriter.run(remaining_args)
+ elif cmd_name == 'configure':
+ return mconf.run(remaining_args)
+ elif cmd_name == 'wrap':
+ return wraptool.run(remaining_args)
+
+ # No special command? Do the basic setup/reconf.
if len(args) >= 2 and args[0] == '--internal':
if args[1] != 'regenerate':
script = args[1]
@@ -281,6 +302,7 @@ def run(mainfile, args):
handshake = True
else:
handshake = False
+
args = mesonlib.expand_arguments(args)
options = parser.parse_args(args)
args = options.directories