lint per file

gives paralellism
This commit is contained in:
2026-02-12 13:51:53 +02:00
parent 0295bb4651
commit 71f570ee3d
2 changed files with 41 additions and 36 deletions

View File

@@ -71,44 +71,48 @@ pub fn build(b: *std.Build) !void {
const lint_step = b.step("lint", "Run linters");
const clang_analyze = b.addSystemCommand(&.{
"clang",
"--analyze",
"--analyzer-output",
"text",
"-Wno-unused-command-line-argument",
"-Werror",
});
for (all_c_files) |cfile| clang_analyze.addFileArg(b.path(cfile));
clang_analyze.expectExitCode(0);
lint_step.dependOn(&clang_analyze.step);
for (all_c_files) |cfile| {
const clang_analyze = b.addSystemCommand(&.{
"clang",
"--analyze",
"--analyzer-output",
"text",
"-Wno-unused-command-line-argument",
"-Werror",
});
clang_analyze.addFileArg(b.path(cfile));
clang_analyze.expectExitCode(0);
lint_step.dependOn(&clang_analyze.step);
const gcc_analyze = b.addSystemCommand(&.{
"gcc",
"--analyzer",
"-Werror",
"-o",
"/dev/null",
});
for (all_c_files) |cfile| gcc_analyze.addFileArg(b.path(cfile));
gcc_analyze.expectExitCode(0);
lint_step.dependOn(&gcc_analyze.step);
const gcc_analyze = b.addSystemCommand(&.{
"gcc",
"-c",
"--analyzer",
"-Werror",
"-o",
"/dev/null",
});
gcc_analyze.addFileArg(b.path(cfile));
gcc_analyze.expectExitCode(0);
lint_step.dependOn(&gcc_analyze.step);
const cppcheck = b.addSystemCommand(&.{
"cppcheck",
"--quiet",
"--error-exitcode=1",
"--check-level=exhaustive",
"--enable=all",
"--inline-suppr",
"--suppress=missingIncludeSystem",
"--suppress=checkersReport",
"--suppress=unusedFunction", // TODO remove after plumbing is done
"--suppress=unusedStructMember", // TODO remove after plumbing is done
});
for (all_c_files) |cfile| cppcheck.addFileArg(b.path(cfile));
cppcheck.expectExitCode(0);
lint_step.dependOn(&cppcheck.step);
const cppcheck = b.addSystemCommand(&.{
"cppcheck",
"--quiet",
"--error-exitcode=1",
"--check-level=exhaustive",
"--enable=all",
"--inline-suppr",
"--suppress=missingIncludeSystem",
"--suppress=checkersReport",
"--suppress=unusedFunction", // TODO remove after plumbing is done
"--suppress=unusedStructMember", // TODO remove after plumbing is done
"--suppress=unmatchedSuppression",
});
cppcheck.addFileArg(b.path(cfile));
cppcheck.expectExitCode(0);
lint_step.dependOn(&cppcheck.step);
}
const all_step = b.step("all", "Run fmt check, lint, and tests with all compilers");
all_step.dependOn(lint_step);

View File

@@ -1,3 +1,4 @@
#include "common.h"
#include <assert.h>