0

很长一段时间以来,我一直在开发一个名为 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 文件,或者我可以将说明直接添加到主项目文件中吗?

4

1 回答 1

2

您可以尝试使用该QMAKE_POST_LINK变量:

QMAKE_POST_LINK  += build_help.sh

附言

我不能保证最终从我提供的源包创建我的应用程序的 Debian 包的人会使用该脚本。

我认为这真的不是你的问题:) 正确构建包取决于他们。

于 2013-03-26T06:13:02.097 回答