如何传递clang
标志,例如带有<LANG>_CLANG_TIDY
CMake属性的-fms-compatibility-version
?在CLI上这很容易:
clang-tidy main.cpp -- -fms-compatibility-version=19.10
但在CMake中,这并不像预期的那样工作:
-DCMAKE_CXX_CLANG_TIDY="clang-tidy;-checks=-*,readability-*;--;-fms-compatibility-version=19.10"
要使clang
与MSVC的现代版本一起工作,需要该标志。
如果这不可能;有没有其他方法可以集成CMake+MSVC+clang-tidy(除了创建自定义构建目标)?
4条答案
按热度按时间jtoj6r0c1#
在Visual studio 2017 15.6.3(确保更新)这里.
我不得不把
在我的
CMakeLists.txt
中。我不知道这是否是正确的方法,但我可以编译和检测错误。对我来说似乎是一个胜利。ddrv8njm2#
您可以使用
--extra-arg
和--extra-arg-before
(docs)。--额外参数=:附加到编译器命令行的参数。可以多次使用。
--之前的额外参数=:附加参数附加到编译器命令行。可以多次使用。
这在CMake的早期版本中是受支持的,但我使用它来获得Windows和Linux上的CMake 3.16对C++17的支持。
对我来说,这是迄今为止集成CMake+MSVC+clang-tidy最困难的部分(下面是我遵循的细节)。
m1m5dgzv3#
CMAKE_CXX_CLANG_TIDY in MSVC在本主题中,
VS_GLOBAL_ClangTidyChecks
属性可能有效。jfewjypa4#
在你链接到的docs中,实际上是这样说的。目前(3.13.3版)它只适用于Makefile和Ninja。它不适用于msbuild。