On 23/09/20 12:36, Anthony PERARD wrote: > Commit a81df1b68b65 ("libqemuutil, qapi, trace: convert to meson") > removed it without explanation and it is useful to be able to run a > script without having to figure out which interpreter to use. > > Signed-off-by: Anthony PERARD <anthony.per...@citrix.com> > --- > scripts/tracetool.py | 0 > 1 file changed, 0 insertions(+), 0 deletions(-) > mode change 100644 => 100755 scripts/tracetool.py > > diff --git a/scripts/tracetool.py b/scripts/tracetool.py > old mode 100644 > new mode 100755 >
The explanation is in docs/devel/build-system.rst Support scripts --------------- Meson has a special convention for invoking Python scripts: if their first line is `#! /usr/bin/env python3` and the file is *not* executable, find_program() arranges to invoke the script under the same Python interpreter that was used to invoke Meson. This is the most common and preferred way to invoke support scripts from Meson build files, because it automatically uses the value of configure's --python= option. In case the script is not written in Python, use a `#! /usr/bin/env ...` line and make the script executable. Scripts written in Python, where it is desirable to make the script executable (for example for test scripts that developers may want to invoke from the command line, such as tests/qapi-schema/test-qapi.py), should be invoked through the `python` variable in meson.build. For example:: test('QAPI schema regression tests', python, args: files('test-qapi.py'), env: test_env, suite: ['qapi-schema', 'qapi-frontend']) This is needed to obey the --python= option passed to the configure script, which may point to something other than the first python3 binary on the path.