【问题标题】:Integrate vera++ (or other coding-convention tool) with Qt/QtCreator将 vera++(或其他编码约定工具)与 Qt/QtCreator 集成
【发布时间】:2016-01-13 14:08:47
【问题描述】:

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

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

【问题讨论】:

  • 第一个链接只是一个截图。它没有说明如何集成。第二个也没用!
  • 实际上,第一个链接是关于您的问题“另外,是否可以将此工具集成到 QtCreator 中?”的屏幕截图答案。如果第二个链接无用,那么,我认为,您应该编写一些脚本来调用源代码库上的 vera++ 工具。
  • 第一个链接回答这个工具可以集成到 QtCreator 中,但不告诉如何集成!!!

标签: c++ qt coding-style qt-creator vera++


【解决方案1】:

解决方案

我通过在项目根目录的.qmake.conf文件中添加以下几行,将vera++集成到一个复合qmake项目中:

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++

这会添加一个递归 make 目标 vera++,它会处理每个非子目录子项目中的所有头文件和源文件。

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

qmake
make qmake_all
make vera++

附加信息

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 2010-09-07
相关资源
最近更新 更多