将vera++(或其他编码约定工具)与Qt/QtCreator集成

Integrate vera++ (or other coding-convention tool) with Qt/QtCreator

本文关键字:Qt 集成 QtCreator 工具 约定 vera++ 其他 编码      更新时间:2023-10-16

我们正在用Qt开发一个应用程序,在服务器中我们有用于自动构建和自动测试的genkin服务器。我们想要一个像vera++这样的编码约定测试工具。我们没有使用vera++或其他工具的经验,但我们只想让vera++处理Qt项目(.pro)的每个文件。此外,是否可以在QtCreator中集成此工具?

我在网上找不到任何东西。谢谢

解决方案

我已经在一个复合qmake项目中集成了vera++,方法是在项目根目录的文件.qmake.conf中添加以下行:

defineReplace(absolute_paths) {
    result =
    for(path, ARGS) {
        result += $$absolute_path($$path, $$_PRO_FILE_PWD_)
    }
    return($$result)
}
equals(TEMPLATE, subdirs): prepareRecursiveTarget(vera++)
else {
    # We prefix the report file name with the project file base name to prevent name collisions.
    VERA_TARGET = $$basename(_PRO_FILE_).vera++.xml
    vera++.commands = vera++ --checkstyle-report $$VERA_TARGET --show-rule $$absolute_paths($$HEADERS) $$absolute_paths($$SOURCES)
    QMAKE_CLEAN += $$VERA_TARGET
}
QMAKE_EXTRA_TARGETS += vera++

这添加了一个递归生成目标vera++,用于处理每个非子目录子项目中的所有头文件和源文件。

要生成XML报告,请调用以下命令:

qmake
make qmake_all
make vera++

其他信息

.qmake.conf自动包含在所有子目录中的所有.pro文件中。

  • qmake
    • defineReplace()
    • prepareSecuriveTarget()
  • 维拉++