diff options
Diffstat (limited to 'mesonbuild/mesonmain.py')
-rw-r--r-- | mesonbuild/mesonmain.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index fc9d6a6..e07c0df 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.py @@ -38,7 +38,7 @@ class CommandLineParser: self.commands = {} self.hidden_commands = [] self.parser = argparse.ArgumentParser(prog='meson', formatter_class=self.formatter) - self.subparsers = self.parser.add_subparsers(title='Commands', + self.subparsers = self.parser.add_subparsers(title='Commands', dest='command', description='If no command is specified it defaults to setup command.') self.add_command('setup', msetup.add_arguments, msetup.run, help_msg='Configure the project') @@ -111,6 +111,7 @@ class CommandLineParser: return 0 def run(self, args): + print_py35_notice = False # If first arg is not a known command, assume user wants to run the setup # command. known_commands = list(self.commands.keys()) + ['-h', '--help'] @@ -119,14 +120,22 @@ class CommandLineParser: # Hidden commands have their own parser instead of using the global one if args[0] in self.hidden_commands: - parser = self.commands[args[0]] + command = args[0] + parser = self.commands[command] args = args[1:] else: parser = self.parser + command = None args = mesonlib.expand_arguments(args) options = parser.parse_args(args) + if command is None: + command = options.command + + if command in ('setup', 'compile', 'test', 'install') and sys.version_info < (3, 6): + print_py35_notice = True + try: return options.run_func(options) except MesonException as e: @@ -143,6 +152,9 @@ class CommandLineParser: traceback.print_exc() return 2 finally: + if print_py35_notice: + mlog.notice('You are using Python 3.5 which is EOL. Starting with v0.57, ' + 'Meson will require Python 3.6 or newer', fatal=False) mlog.shutdown() def run_script_command(script_name, script_args): |