Re: [PATCH v2 3/3] meson: add rule to run 'git clang-format'
- From
Karthik Nayak <karthik.188@gmail.com>
- Date
- Jul 1, 2025, 15:08 UTC
- Message-ID
- <CAOLa=ZSaAVY2ChSWyU20fMniFHAz-aVtCDR_EizxJfErdy-u+Q@mail.gmail.com>
- In-Reply-To
- <aGO00T4c2Q-EYXZx@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 15 quoted lines
> On Mon, Jun 30, 2025 at 10:38:22AM +0200, Karthik Nayak wrote: >> 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!
Show 28 quoted lines
>> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
>> ---
>> 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