CMAKE_EXPORT_SARIF¶
版本 4.0 中加入。
启用或禁用项目中 SARIF 格式的 CMake 诊断输出。
如果启用,CMake 将生成一个 SARIF 日志文件,其中包含在项目中运行 CMake 时由 CMake 输出的诊断消息。 默认情况下,日志文件写入到 .cmake/sarif/cmake.sarif
,但可以通过设置命令行选项 cmake --sarif-output
来更改位置到所需的路径。
静态分析结果交换格式 (SARIF) 是一种基于 JSON 的标准格式,供静态分析工具(包括像 CMake 这样的构建工具)记录和传递诊断消息。 CMake 为在项目上运行 CMake 时产生的警告和错误生成 SARIF 日志条目(例如 message()
调用)。 每个日志条目都包含消息、严重程度和位置信息(如果可用)。
CMake SARIF 输出的示例是
{
"version" : "2.1.0",
"$schema" : "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.4.json",
"runs" :
[
{
"tool" :
{
"driver" :
{
"name" : "CMake",
"rules" :
[
{
"id" : "CMake.Warning",
"messageStrings" :
{
"default" :
{
"text" : "CMake Warning: {0}"
}
},
"name" : "CMake Warning"
}
]
}
},
"results" :
[
{
"level" : "warning",
"locations" :
[
{
"physicalLocation" :
{
"artifactLocation" :
{
"uri" : "/home/user/development/project/CMakeLists.txt"
},
"region" :
{
"startLine" : 5
}
}
}
],
"message" :
{
"text" : "An example warning"
},
"ruleId" : "CMake.Warning",
"ruleIndex" : 0
}
]
}
]
}