0

我正在处理我的 Qt 桌面应用程序的构建问题。我正在使用QT 5.7

据我所知,对于 qt mac 应用程序,我需要使用QMAKE_BUNDLE_DATA 将所有资源捆绑到 .app中,所以我使用了它。我还为运行外部命令(rcc)的 make 文件定义了自定义目标,该命令生成一些需要复制到 .app 包中的 .rcc 文件。

...
CMD_RCC += "rcc -binary "$${QRC_FILE}" -o "$${RCC_FILE}

creatercc.commands = $$CMD_RCC
creatercc-check.commands = $$CMD_RCC
creatercc-make_first.commands = $$CMD_RCC
creatercc-make_default.commands = $$CMD_RCC
creatercc-make_all.commands = $$CMD_RCC
creatercc-qmake_all.commands = $$CMD_RCC

QMAKE_EXTRA_TARGETS *= creatercc creatercc-check creatercc-make_default creatercc-make_first creatercc-make_all creatercc-qmake_all creatercc-clean creatercc-distclean
PRE_TARGETDEPS *= creatercc

macx{
    DEPLOYDIR = $$PWD/deploy

    LAUNCHER_THEMES.files = \
        $$PWD/deploy/themes/res.rcc
    LAUNCHER_THEMES.path = Contents/Resources/themes
    QMAKE_BUNDLE_DATA += LAUNCHER_THEMES
}

问题是我在编译时收到一个错误,表明.app 包找不到 .rcc文件,这意味着没有生成 .rcc 文件!但是,我在没有 QMAKE_BUNDLE_DATA 的情况下测试了我的自定义目标(creatercc),它生成了 .rcc 文件,因此我得出结论,希望在创建 .rcc 之前创建 .app 包,这就是包找不到 .rcc 文件的原因。

问题是:如何确保预定义的目标在 QMAKE_BUNDLE_DATA 之前首先运行,并且 QMAKE_BUNDLE_DATA 等到预定义的目标命令结束它的执行?谢谢

4

0 回答 0