将 vera++(或其他编码约定工具)与 Qt/QtCreator 集成
Integrate vera++ (or other coding-convention tool) with Qt/QtCreator
我们正在使用 Qt 开发一个应用程序,在服务器中我们有用于自动构建和自动测试的 genkin 服务器。
我们想要像 vera++ 这样的编码约定测试工具。我们没有使用 vera++ 或其他工具的经验,但我们只想让 vera++ 处理 Qt 项目 (.pro) 的每个文件。另外,QtCreator可以集成这个工具吗?
我在 Internet 上找不到任何内容。
谢谢
解决方案
我通过在项目根目录下的文件 .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 文件中。
我们正在使用 Qt 开发一个应用程序,在服务器中我们有用于自动构建和自动测试的 genkin 服务器。 我们想要像 vera++ 这样的编码约定测试工具。我们没有使用 vera++ 或其他工具的经验,但我们只想让 vera++ 处理 Qt 项目 (.pro) 的每个文件。另外,QtCreator可以集成这个工具吗?
我在 Internet 上找不到任何内容。 谢谢
解决方案
我通过在项目根目录下的文件 .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 文件中。