我正在使用一个使用“subdirs”模板的 qmake .pro 文件为我的 Qt 应用程序构建一个构建系统。这很好用,并且允许我指定每个目标的构建顺序,因此依赖关系可以很好地工作。但是,我现在已经向项目添加了一个工具,该工具会生成主应用程序使用的版本号(包含构建日期、SVN 修订版等)——我可以先构建这个版本工具,但是当它构建时我想要在构建更多目标之前执行它(它会生成一个包含主应用程序包含的版本号的头文件。)
例如,我的简单 qmake 文件如下所示:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = version \
lib \
tests \
mainapp
当构建“版本”时,我想在构建“lib”之前执行它(在命令行上传递一些参数)。
有谁知道这是否可能?我看到 qmake 有一个可以执行应用程序的“系统”命令,但我不知道如何利用它。
一个相关问题涉及我的单元测试。这些存在于“测试”项目中并使用 QTest 框架。我想在构建“mainapp”之前执行测试 exe,如果测试失败(即测试 exe 不返回零),我想退出构建过程。
我意识到 qmake 旨在生成 makefile,所以我可能希望在这里有点太多,但如果有人可以给我一些指示,那将是非常受欢迎的。