如何整合cakey与CMake(<LANG> _CLANG_TIDY)和MSVC?

Flo*_*ers 6 cmake clang visual-c++ clang-tidy

如何传递clang旗帜,例如-fms-compatibility-version使用<LANG>_CLANG_TIDYCMake属性?在CLI上这很容易:

clang-tidy main.cpp -- -fms-compatibility-version=19.10
Run Code Online (Sandbox Code Playgroud)

但是使用CMake,这不能按预期工作:

-DCMAKE_CXX_CLANG_TIDY="clang-tidy;-checks=-*,readability-*;--;-fms-compatibility-version=19.10"
Run Code Online (Sandbox Code Playgroud)

该标志是clang使用现代版本的MSVC 所必需的.

如果这是不可能的; 有没有其他方法来集成CMake + MSVC + clang-tidy(除了创建自定义构建目标)?

hma*_*rfk 0

在 Visual studio 2017 15.6.3 上(请确保更新)此处。

我不得不把

set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-format-style='file'")

# CMake is buggy. It gives the -std:c++14 instead of /std:c++14
# set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++14")
Run Code Online (Sandbox Code Playgroud)

在我的CMakeLists.txt。我不知道这是否是正确的方法,但我可以编译并检测错误。对我来说似乎是一场胜利。