Thread (26 messages) 26 messages, 4 authors, 2025-07-02

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'
+    ]
+  )
+endif
Do 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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help