Changeset View
Changeset View
Standalone View
Standalone View
cmake/modules/ClangTidy.cmake
Show All 10 Lines | if(NOT CLANG_TIDY_EXE) | ||||
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION_OUTPUT}") | string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION_OUTPUT}") | ||||
if("${CLANG_TIDY_VERSION}" VERSION_LESS "8.0.0") | if("${CLANG_TIDY_VERSION}" VERSION_LESS "8.0.0") | ||||
message(FATAL_ERROR "clang-tidy version >= 8 is required") | message(FATAL_ERROR "clang-tidy version >= 8 is required") | ||||
endif() | endif() | ||||
message(STATUS "Using clang-tidy: ${CLANG_TIDY_EXE} (version ${CLANG_TIDY_VERSION})") | message(STATUS "Using clang-tidy: ${CLANG_TIDY_EXE} (version ${CLANG_TIDY_VERSION})") | ||||
endif() | endif() | ||||
set(CLANG_TIDY_ARGS "${CLANG_TIDY_EXE}" -fix) | set(CLANG_TIDY_ARGS "${CLANG_TIDY_EXE}" -warnings-as-errors=*) | ||||
set(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_ARGS}) | set(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_ARGS}) | ||||
set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_ARGS}) | set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_ARGS}) | ||||
# This is useful to run clang-tidy manually: | # This is useful to run clang-tidy manually: | ||||
# clang-tidy <file.cpp> -checks=<whatever> -p compile_commands.json | # clang-tidy <file.cpp> -checks=<whatever> -p compile_commands.json | ||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) | set(CMAKE_EXPORT_COMPILE_COMMANDS ON) | ||||
# Disable for a single target | # Disable for a single target | ||||
macro(target_disable_clang_tidy TARGET) | macro(target_disable_clang_tidy TARGET) | ||||
set_target_properties(${TARGET} PROPERTIES | set_target_properties(${TARGET} PROPERTIES | ||||
C_CLANG_TIDY "" | C_CLANG_TIDY "" | ||||
CXX_CLANG_TIDY "" | CXX_CLANG_TIDY "" | ||||
) | ) | ||||
endmacro() | endmacro() |