diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..1bae24a --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,8 @@ +Checks: > + -*, + clang-analyzer-*, + bugprone-*, + performance-*, + portability-* +#WarningsAsErrors: '*' +HeaderFilterRegex: 'src/.*' \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fa9a76..78cd2af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,17 @@ if (CMAKE_COMPILER_IS_GNUCC) endif() endif() +# clang-tidy if available +find_program(CLANG_TIDY_EXE NAMES clang-tidy) + +if(CLANG_TIDY_EXE AND STATIC_ANALYSIS) + message(STATUS "clang-tidy enabled: ${CLANG_TIDY_EXE}") + set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXE}") + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +else() + message(WARNING "clang-tidy not found. Static analysis disabled.") +endif() + # ========== Header checks ========== check_include_file("fcntl.h" HAVE_FCNTL_H) check_include_file("errno.h" HAVE_ERRNO_H)