[cmake] add clang-tidy support
This commit is contained in:
parent
465745131e
commit
15d9e5e01a
47
.clang-tidy
Normal file
47
.clang-tidy
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
Checks: '-*,abseil-*,altera-*,boost-*,bugprone-*,cert-*,clang-analyzer*,concurrency-*,cppcoreguidelines*,google-*,hicpp-*,llvm-*,modernize-*,objc-*,openmp-*,performance-*,portability-*,readability-*,-llvm-include-order,-google-readability-braces-around-statements,-hicpp-braces-around-statements,-altera-unroll-loops,-altera-struct-pack-align,-readability-braces-around-statements,-llvm-header-guard,-llvm-qualified-auto,-hicpp-uppercase-literal-suffix,-hicpp-signed-bitwisei,-cert-dcl16-c,-cert-env33-c,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-readability-function-cognitive-complexity,-readability-uppercase-literal-suffix,-readability-qualified-auto'
|
||||||
|
WarningsAsErrors: ''
|
||||||
|
HeaderFilterRegex: ''
|
||||||
|
AnalyzeTemporaryDtors: false
|
||||||
|
FormatStyle: file
|
||||||
|
User: nin
|
||||||
|
CheckOptions:
|
||||||
|
- key: llvm-else-after-return.WarnOnConditionVariables
|
||||||
|
value: 'false'
|
||||||
|
- key: modernize-loop-convert.MinConfidence
|
||||||
|
value: reasonable
|
||||||
|
- key: modernize-replace-auto-ptr.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: cert-str34-c.DiagnoseSignedUnsignedCharComparisons
|
||||||
|
value: 'false'
|
||||||
|
- key: google-readability-namespace-comments.ShortNamespaceLines
|
||||||
|
value: '10'
|
||||||
|
- key: cert-err33-c.CheckedFunctions
|
||||||
|
value: '::aligned_alloc;::asctime_s;::at_quick_exit;::atexit;::bsearch;::bsearch_s;::btowc;::c16rtomb;::c32rtomb;::calloc;::clock;::cnd_broadcast;::cnd_init;::cnd_signal;::cnd_timedwait;::cnd_wait;::ctime_s;::fclose;::fflush;::fgetc;::fgetpos;::fgets;::fgetwc;::fopen;::fopen_s;::fprintf;::fprintf_s;::fputc;::fputs;::fputwc;::fputws;::fread;::freopen;::freopen_s;::fscanf;::fscanf_s;::fseek;::fsetpos;::ftell;::fwprintf;::fwprintf_s;::fwrite;::fwscanf;::fwscanf_s;::getc;::getchar;::getenv;::getenv_s;::gets_s;::getwc;::getwchar;::gmtime;::gmtime_s;::localtime;::localtime_s;::malloc;::mbrtoc16;::mbrtoc32;::mbsrtowcs;::mbsrtowcs_s;::mbstowcs;::mbstowcs_s;::memchr;::mktime;::mtx_init;::mtx_lock;::mtx_timedlock;::mtx_trylock;::mtx_unlock;::printf_s;::putc;::putwc;::raise;::realloc;::remove;::rename;::scanf;::scanf_s;::setlocale;::setvbuf;::signal;::snprintf;::snprintf_s;::sprintf;::sprintf_s;::sscanf;::sscanf_s;::strchr;::strerror_s;::strftime;::strpbrk;::strrchr;::strstr;::strtod;::strtof;::strtoimax;::strtok;::strtok_s;::strtol;::strtold;::strtoll;::strtoul;::strtoull;::strtoumax;::strxfrm;::swprintf;::swprintf_s;::swscanf;::swscanf_s;::thrd_create;::thrd_detach;::thrd_join;::thrd_sleep;::time;::timespec_get;::tmpfile;::tmpfile_s;::tmpnam;::tmpnam_s;::tss_create;::tss_get;::tss_set;::ungetc;::ungetwc;::vfprintf;::vfprintf_s;::vfscanf;::vfscanf_s;::vfwprintf;::vfwprintf_s;::vfwscanf;::vfwscanf_s;::vprintf_s;::vscanf;::vscanf_s;::vsnprintf;::vsnprintf_s;::vsprintf;::vsprintf_s;::vsscanf;::vsscanf_s;::vswprintf;::vswprintf_s;::vswscanf;::vswscanf_s;::vwprintf_s;::vwscanf;::vwscanf_s;::wcrtomb;::wcschr;::wcsftime;::wcspbrk;::wcsrchr;::wcsrtombs;::wcsrtombs_s;::wcsstr;::wcstod;::wcstof;::wcstoimax;::wcstok;::wcstok_s;::wcstol;::wcstold;::wcstoll;::wcstombs;::wcstombs_s;::wcstoul;::wcstoull;::wcstoumax;::wcsxfrm;::wctob;::wctrans;::wctype;::wmemchr;::wprintf_s;::wscanf;::wscanf_s;'
|
||||||
|
- key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField
|
||||||
|
value: 'false'
|
||||||
|
- key: cert-dcl16-c.NewSuffixes
|
||||||
|
value: 'L;LL;LU;LLU'
|
||||||
|
- key: google-readability-braces-around-statements.ShortStatementLines
|
||||||
|
value: '1'
|
||||||
|
- key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
|
||||||
|
value: 'true'
|
||||||
|
- key: google-readability-namespace-comments.SpacesBeforeComments
|
||||||
|
value: '2'
|
||||||
|
- key: modernize-loop-convert.MaxCopySize
|
||||||
|
value: '16'
|
||||||
|
- key: modernize-pass-by-value.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: modernize-use-nullptr.NullMacros
|
||||||
|
value: 'NULL'
|
||||||
|
- key: llvm-qualified-auto.AddConstToQualified
|
||||||
|
value: 'false'
|
||||||
|
- key: modernize-loop-convert.NamingStyle
|
||||||
|
value: CamelCase
|
||||||
|
- key: llvm-else-after-return.WarnOnUnfixable
|
||||||
|
value: 'false'
|
||||||
|
- key: google-readability-function-size.StatementThreshold
|
||||||
|
value: '800'
|
||||||
|
...
|
||||||
|
|
||||||
|
|
29
cmake/ClangTidy.cmake
Normal file
29
cmake/ClangTidy.cmake
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
option(BUILD_WITH_CLANG_TIDY "Build with clang-tidy for extra warnings" OFF)
|
||||||
|
|
||||||
|
if (BUILD_WITH_CLANG_TIDY)
|
||||||
|
find_program(CLANG_TIDY_EXE
|
||||||
|
NAMES
|
||||||
|
clang-tidy-20
|
||||||
|
clang-tidy-19
|
||||||
|
clang-tidy-18
|
||||||
|
clang-tidy-17
|
||||||
|
clang-tidy-16
|
||||||
|
clang-tidy-15
|
||||||
|
clang-tidy-14
|
||||||
|
clang-tidy-13
|
||||||
|
clang-tidy-12
|
||||||
|
clang-tidy-11
|
||||||
|
clang-tidy-10
|
||||||
|
clang-tidy
|
||||||
|
REQUIRED
|
||||||
|
)
|
||||||
|
set(CLANG_TIDY_COMMAND "${CLANG_TIDY_EXE}" --config-file=${CMAKE_SOURCE_DIR}/.clang-tidy)
|
||||||
|
|
||||||
|
set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_COMMAND}" --extra-arg=-std=gnu11)
|
||||||
|
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}" --extra-arg=-std=gnu++17)
|
||||||
|
set(CMAKE_OBJC_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
|
||||||
|
else()
|
||||||
|
unset(CMAKE_C_CLANG_TIDY)
|
||||||
|
unset(CMAKE_CXX_CLANG_TIDY)
|
||||||
|
unset(CMAKE_OBJC_CLANG_TIDY)
|
||||||
|
endif()
|
@ -27,4 +27,5 @@ include(PreventInSourceBuilds)
|
|||||||
include(GNUInstallDirsWrapper)
|
include(GNUInstallDirsWrapper)
|
||||||
include(MSVCRuntime)
|
include(MSVCRuntime)
|
||||||
include(ConfigureRPATH)
|
include(ConfigureRPATH)
|
||||||
|
include(ClangTidy)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user