Add clang-tidy support to cmake

Also, enables it in CI.
This commit is contained in:
JJ Marr 2024-11-22 13:06:45 -05:00 committed by Gunter Labes
parent e9e40b5a37
commit d8d92b5d28
4 changed files with 15 additions and 1 deletions

4
.clang-tidy Normal file
View file

@ -0,0 +1,4 @@
---
Checks: '-*,modernize-use-nullptr'
WarningsAsErrors: true
...

View file

@ -104,7 +104,7 @@ jobs:
cmake "$@" -DCMAKE_BUILD_TYPE="$CFG" -DCXX_STD="$CXX_STD" \
-DEXTRA_FLAGS_CONFIG="-pipe" -DENABLE_MYSQL=true \
-DENABLE_NLS=false -DENABLE_LTO="$LTO" -DFORCE_COLOR_OUTPUT=true -DLTO_JOBS=2 \
-DENABLE_SYSTEM_LUA="$SYS_LUA" .
-DENABLE_SYSTEM_LUA="$SYS_LUA -DCLANG_TIDY=true" .
}
rm -R /usr/local/lib/cmake
rm /usr/local/lib/libboost*

View file

@ -171,6 +171,7 @@ option(GLIBCXX_ASSERTIONS "Whether to define _GLIBCXX_ASSERTIONS" OFF)
option(GLIBCXX_DEBUG "Whether to define _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC. Requires a version of Boost's program_options that's compiled with __GLIBCXX_DEBUG too." OFF)
option(ENABLE_POT_UPDATE_TARGET "Enables the tools to update the pot files and manuals. This target has extra dependencies." OFF)
option(FORCE_COLOR_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." FALSE)
option(CLANG_TIDY "Enable clang-tidy linter checks." OFF)
if(UNIX AND NOT APPLE AND NOT CYGWIN)
option(ENABLE_NOTIFICATIONS "Enable Window manager notification messages" ON)
@ -255,6 +256,11 @@ if(NOT MSVC)
endif()
endif()
### Enable clang-tidy linting
if (CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY "clang-tidy -Wno-unknown-warning-option")
endif()
### Set the final compiler flags.
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_USER}")

View file

@ -0,0 +1,4 @@
---
Checks: '-*,bugprone-use-after-move'
WarningsAsErrors: true
...