meson: Define our own clang-tidy target

meson's target has a few issues:
- Runs on all source files regardless if they're included in the
  build or not
- Doesn't have any dependencies on generated sources which means we
  have to do a full build first before we can run clang-tidy
- Doesn't allow us to pass any extra arguments

To work around these, let's define our own clang-tidy target instead
using llvm's run-clang-tidy script. Alongside the clang-tidy target,
let's start keeping track of all generated sources which we make the
clang-tidy target depend on. We also add a new target which will only
generate source files which is useful for setting up the source tree
for running code analysis against it.
This commit is contained in:
Daan De Meyer
2025-04-24 11:58:45 +02:00
parent 10594762c7
commit 44e86153d1
24 changed files with 99 additions and 30 deletions

View File

@@ -73,9 +73,5 @@ jobs:
- name: Configure meson
run: mkosi sandbox -- env CC=clang CXX=clang++ meson setup build
# Make sure all generated source files are actually generated by doing a full build.
- name: Build systemd
run: mkosi sandbox -- ninja -C build
- name: Run clang-tidy
run: mkosi sandbox -- ninja -C build clang-tidy