我们正在使用Qt开发应用程序,并且在服务器中,我们有genkin服务器用于自动构建和自动测试。
我们想要一个像vera++这样的编码约定测试工具。我们没有使用Vera++或其他工具的经验,但是我们想要做的就是让Vera++处理Qt项目(.pro)的每个文件。另外,是否可以在QtCreator中集成此工具?
我在互联网上找不到任何东西。
谢谢。
最佳答案
解决方案
我通过在项目根目录的.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++
,该目标代码将处理每个非subdirs子项目中的所有头文件和源文件。要生成XML报告,请调用以下命令:
qmake
make qmake_all
make vera++
附加信息
.qmake.conf
自动包含在所有子目录中的所有.pro文件中。