meson: add rule to run 'git clang-format'

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. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Karthik Nayak committed Jul 2, 2025 at 11:23 UTC 3f7e447aaf40724e54fe81c99bee104829e3d23d
1 file changed +12
meson.build
+12
@@ -2132,6 +2132,18 @@ if headers_to_check.length() != 0 and compiler.get_argument_syntax() == 'gcc'
2132 alias_target('check-headers', hdr_check)
2133 endif
2134
2135 +git_clang_format = find_program('git-clang-format', required: false, native: true)
2136 +if git_clang_format.found()
2137 + run_target('style',
2138 + command: [
2139 + git_clang_format,
2140 + '--style', 'file',
2141 + '--diff',
2142 + '--extensions', 'c,h'
2143 + ]
2144 + )
2145 +endif
2146 +
2147 foreach key, value : {
2148 'DIFF': diff.full_path(),
2149 'GIT_SOURCE_DIR': meson.project_source_root(),