在应用程序编译过程中运行qcollectiongenerator

时间:2013-03-25 21:02:55

标签: qt qmake

我一直在研究一种名为RoboJournal的程序。下一个版本包含完整的文档;每当用户按下F1或点击RoboJournal程序中的帮助项目时,帮助文件就会显示在Qt助手中(方式比仅打开浏览器窗口更方便一些在线文档)。

在其基本形式中,文档包含源包中包含的大量松散HTML和图像文件。这些松散的文件应该在构建期间编译成QCH编译的帮助文件和QHC集合文件,因此Qt Assistant可以正确显示文档。在Windows上,这非常简单,因为我能够编写批处理脚本来自动化整个构建过程(包括编译文档并将输出文件移动到正确的位置)。

在Linux上,它有点复杂。是的,我可以编写一个Bash或Perl脚本来编译文档以及程序的其余部分,但我不能保证最终将从我提供的源包创建应用程序的Debian软件包的人将使用该脚本。源代码包用于创建所有Debian软件包,因此所有内容都必须与标准构建过程完美配合(或源代码包没有价值)。因此,无论用户是否运行脚本,我都需要编译过程来产生相同的结果。就像现在一样,用户必须手动构建和安装文档。当然有一些方法可以实现自动化。

是否可以让Qmake添加指令来运行qcollectiongenerator到makefile(为了构建我的应用程序的帮助文件),以便在“make”步骤中正确处理它?这样,当用户运行“make install”时,QHC和QCH文件就可以安装到适当的位置(在我的例子中是/usr/share/doc/robojournal-0.4.1)以及其他所有文件。我已经考虑提前编译QCH和QHC文件并在源代码包中提供它们,但是从源代码构建的整个过程就是能够从其基本组件重新创建整个应用程序。

我知道我可能需要在我的.PRO文件中添加其他说明,但我不确定是什么或如何。我找到了一些看起来很有前景的东西(http://www.qtcentre.org/archive/index.php/t-49484.html)并且让我希望Qmake可以做我需要的但是我不确定这些说明对我的情况有多适用。我是否必须为此创建PRI文件,还是可以将指令直接添加到主项目文件中?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用QMAKE_POST_LINK变量:

QMAKE_POST_LINK  += build_help.sh

P.S。

  

我无法保证最终会创造我的人   我给他们的源包中的app的Debian包将使用   脚本。

我认为这不是你的问题:)正是由他们来正确构建软件包。