如何从 cmd 在 qmake Qt 项目上运行 clang-tidy 和 clazy?

Fou*_*Two 9 qt qmake static-analysis jenkins clang-tidy

我有一些基于 qmake 的 Windows 项目,这些项目每天都在 Jenkins 上构建。Jenkins 在 Windows 机器上运行,我的项目使用“Windows 批处理命令”构建得很好,这与运行一个好的旧批处理 (.bat) 文件几乎相同。

如今,Qt Creator 集成了 clang-tidy 和 clazy,这些可以在使用 Qt Creator 的 GUI 的项目上运行。

我现在希望每天在我的 Jenkins 实例上运行这些整洁而疯狂的检查。

有没有办法从 qmake 项目的非 GUI 环境运行这些工具?

编辑:我相信我需要添加一些关于我已经尝试过的内容以及我遇到问题的信息,以便以令人满意的方式运行某些内容。

对于 clang-tidy,我发现将所有项目设置(例如包含路径、环境变量等)提供给工具是有问题的。Qt Creator 可以通过其插件来做到这一点,因为它拥有那里可用的所有信息。我发现可以使用compile_commands.json 文件运行clang-tidy 来解决此问题。但是,我找不到在 Windows 上将 qmake .pro 文件“转换”为compile_commands.json 文件的方法。根据这篇博客文章,在 Linux 上,这可以通过 bear 实现,但对于 Windows 似乎没有替代方案......

对于 clazy,可以在正常构建期间运行它,如其文档中所述。然而,这样的构建需要太多的时间来运行,并且它将大部分时间用于不需要的构建输出,这也是不可取的。花费这么长时间的原因是我必须将构建切换到单核构建,因为否则我会得到不同步、混乱的文本输出,然后我无法正确解析它们。

我还知道 Qt 创建者可以在其构建菜单中为当前打开的项目生成一个compile_commands.json 文件。然而,这似乎隐藏在 IDE 代码中,没有 GUI 就无法使用......

或者也许可以根据生成的 makefile 或生成的 Visual Studio 项目文件运行工具?所有这些事情对我来说似乎相当复杂且容易出错,我真的希望有一种简单的方法可以在这里运行一些东西。