ClangTidy + CMake -忽略来自Conan的第三方头文件

mrphzbgm  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(110)

我试图在一些工作源代码上使用ClangTidy,但我无法让它忽略/绕过lib{fmt},并看到大量的噪音,例如:
~/.conan/data/fmt/9.1.0///package/2c09c8f84c016041549fcee94e4caae5d89424b6/ include/fmt/core.h:2955:15:warning:构造函数调用结束时的5个未初始化字段[clang-analyzer-optin.cplusplus.UninitializedObject] types_{ ^ ~/.conan/data/fmt/9.1.0///package/2c 09 c8 f84 c 016041549 fcee 94 e4 caae 5d 89424 b6/ include/fmt/core.h:732:7:注:未初始化字段“this->context_.num_args_”int num_args_; ^~~
我正在使用CMake + Conan,我的诊断消息来自lib{fmt}
对于CppCheck来说,这只是一个简单的情况,即指定~/.conan/下的所有文件都应该被忽略。

如何让Clang-tidy忽略~/.conan/下的所有文件
注意,我已经看到clang-tidy - ignore third party headers code,它没有回答我的问题

mv1qrgav

mv1qrgav1#

系统头文件不会生成警告。您需要将fmt头文件标记为系统头文件。
注意:我正在使用cmake和CPMAddPackage()将fmt带入我的构建环境,您的millage可能会有所不同:

CPMAddPackage("gh:fmtlib/fmt#10.1.1")

字符串
这定义了cmake-variable FMT_SOURCE_DIR,它指向头文件的位置。使用这个变量来设置fmt include:

include_directories(
  SYSTEM
  ${FMT_SOURCE_DIR}/include)


这为我解决了这个问题。您的设置可能会为完全相同的目的创建一个不同的变量。您可以咨询SO answer,关于打印所有变量,找到您需要的变量的名称。

相关问题