diff options
-rw-r--r-- | docs/markdown/Commands.md | 4 | ||||
-rw-r--r-- | mesonbuild/mesonmain.py | 5 | ||||
-rwxr-xr-x | run_project_tests.py | 2 | ||||
-rw-r--r-- | unittests/baseplatformtests.py | 4 |
4 files changed, 11 insertions, 4 deletions
diff --git a/docs/markdown/Commands.md b/docs/markdown/Commands.md index f7ef009..11ca6e0 100644 --- a/docs/markdown/Commands.md +++ b/docs/markdown/Commands.md @@ -240,7 +240,9 @@ See [the Meson file rewriter documentation](Rewriter.md) for more info. Configures a build directory for the Meson project. -This is the default Meson command (invoked if there was no COMMAND supplied). +*Deprecated since 0.64.0*: This is the default Meson command (invoked if there +was no COMMAND supplied). However, supplying the command is necessary to avoid +clashes with future added commands, so "setup" should be used explicitly. {{ setup_arguments.inc }} diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index ec4bfff..37b2502 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.py @@ -121,11 +121,13 @@ class CommandLineParser: return 0 def run(self, args): + implicit_setup_command_notice = False pending_python_deprecation_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'] if not args or args[0] not in known_commands: + implicit_setup_command_notice = True args = ['setup'] + args # Hidden commands have their own parser instead of using the global one @@ -190,6 +192,9 @@ class CommandLineParser: mlog.exception(e) return 2 finally: + if implicit_setup_command_notice: + mlog.warning('Running the setup command as `meson [options]` instead of ' + '`meson setup [options]` is ambiguous and deprecated.', fatal=False) if pending_python_deprecation_notice: mlog.notice('You are using Python 3.6 which is EOL. Starting with v0.62.0, ' 'Meson will require Python 3.7 or newer', fatal=False) diff --git a/run_project_tests.py b/run_project_tests.py index fc5a969..f125a80 100755 --- a/run_project_tests.py +++ b/run_project_tests.py @@ -635,7 +635,7 @@ def _run_test(test: TestDef, should_fail: str) -> TestResult: gen_start = time.time() # Configure in-process - gen_args = [] # type: T.List[str] + gen_args = ['setup'] if 'prefix' not in test.do_not_set_opts: gen_args += ['--prefix', 'x:/usr'] if mesonlib.is_windows() else ['--prefix', '/usr'] if 'libdir' not in test.do_not_set_opts: diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py index 4582188..e97c880 100644 --- a/unittests/baseplatformtests.py +++ b/unittests/baseplatformtests.py @@ -59,7 +59,7 @@ class BasePlatformTests(TestCase): self.meson_native_files = [] self.meson_cross_files = [] self.meson_command = python_command + [get_meson_script()] - self.setup_command = self.meson_command + self.meson_args + self.setup_command = self.meson_command + ['setup'] + self.meson_args self.mconf_command = self.meson_command + ['configure'] self.mintro_command = self.meson_command + ['introspect'] self.wrap_command = self.meson_command + ['wrap'] @@ -205,7 +205,7 @@ class BasePlatformTests(TestCase): self.privatedir = os.path.join(self.builddir, 'meson-private') if inprocess: try: - returncode, out, err = run_configure_inprocess(self.meson_args + args + extra_args, override_envvars) + returncode, out, err = run_configure_inprocess(['setup'] + self.meson_args + args + extra_args, override_envvars) except Exception as e: if not allow_fail: self._print_meson_log() |