Re: [PATCH v2 3/3] meson: add rule to run 'git clang-format'
From: Karthik Nayak <hidden>
Date: 2025-07-01 15:08:13
Patrick Steinhardt [off-list ref] writes:
On Mon, Jun 30, 2025 at 10:38:22AM +0200, Karthik Nayak wrote:quoted
The Makefile has a 'style' rule to run 'git clang-format'. While Meson intrinsically supports a 'clang-format' target, which can be run when using the ninja backend by running 'ninja clang-format', this runs the formatting on all existing files. Our Meson build doesn't yet support a way to run 'git clang-format', which runs the formatter between the working directory and commit provided. Add a new 'style' target to Meson to mimic the target in the Makefile.Hm. Meson already knows to wire up clang-format automaically if it's available. But it indeed doesn't know to only format files that have been changed, so I guess this style makes sense regardless of that.
Exactly!
quoted
Signed-off-by: Karthik Nayak <redacted> --- meson.build | 12 ++++++++++++ 1 file changed, 12 insertions(+)diff --git a/meson.build b/meson.build index 7fea4a34d6..20ce0525a1 100644 --- a/meson.build +++ b/meson.build@@ -2144,6 +2144,18 @@ if headers_to_check.length() != 0 and compiler.get_argument_syntax() == 'gcc' alias_target('check-headers', hdr_check) endif +git_clang_format = find_program('git-clang-format', required: false) +if git_clang_format.found() + run_target('style', + command: [ + 'git', 'clang-format', + '--style', 'file', + '--diff', + '--extensions', 'c,h' + ] + ) +endifDo we want to call this target `clang-format-changed` though, so that it is consistent with the implicit `clang-format` target?
I was aiming for consistency with the Makefile, I don't think anyone uses `meson compile clang-format` anyways. I do like the short form, but open to adding an alias and setting `make style` for deprecation in the following releases.
Patrick
Attachments
- signature.asc [application/pgp-signature] 690 bytes