Я пытаюсь запустить clang-tidy в моем проекте для подмодуля, но он выдает ошибки для стандартных библиотек, например, «строковый» файл не найден или такой же для «cmath». Разработка ведется под Windows с Qt Creator и MinGW.
Это мой файл Cmake
option(RUN_CLANG_TIDY "Run clang-tidy with the compiler." ON)
if(RUN_CLANG_TIDY)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "CMake_RUN_CLANG_TIDY requires an out-of-source build!")
endif()
file(GLOB CLION_PATH
"C:/Program Files/JetBrains/CLion*/bin/clang/win"
)
find_program(CLANG_TIDY_EXE NAMES clang-tidy
HINTS
"C:/Program Files/LLVM/bin"
"C:/Qt/Tools/QtCreator/bin/clang/bin"
"${CLION_PATH}"
)
if(NOT CLANG_TIDY_EXE)
message(WARNING "CMake_RUN_CLANG_TIDY is ON but clang-tidy is not found!")
set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE)
else()
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}")
message("-- Clang-tidy found: ${DO_CLANG_TIDY}")
endif()
endif()
...
add_library(...)
if(DO_CLANG_TIDY)
set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_CLANG_TIDY "${DO_CLANG_TIDY}"
)
endif()
target_include_directories(...)
Я уже пробовал кое-что и проверял все под тэгом clang-tidy здесь в stackoverflow.
Что я пробовал:
1) Установка пути включения Cmake C ++ с помощью
set(CPLUS_INCLUDE_PATH C:/Qt/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++)
2) Генерация команд compile_com. json с
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
...
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-p C:/Users/User04/Documents/Projekte/build-my-project-Desktop_Qt_5_12_6_MinGW_64_bit-Debug")
и указав clang-tidy с -p на него. Ошибка: для опции -p: может отсутствовать в группе
3) Использование параметра -extra-arg, например
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-extra-arg=-I C:/Qt/Tools/mingw730_64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++")
также вместо -I
Я пытался -isystem
с тем же результатом: Ошибка «строковый» файл не найден [clang-Diagnosti c -error]
4) Попытка передать stdlib в clang-tidy
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-extra-arg=-stdlib==libc++")
Но ничего не работает .