diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-15 08:53:41 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-08-02 22:00:09 +0300 |
commit | fa278f351fe3d6924b4d1961f77b5b4a36e133f8 (patch) | |
tree | 9789308c29ccb82fa7ba4e7d30789b4c49aec5fd /mesonbuild/mesonmain.py | |
parent | 0dd9ace5ccbae7c48f2675dfe387e6b7e778f664 (diff) | |
download | meson-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.py | 26 |
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 |