在qmake期间检测修改的文件

时间:2016-03-03 10:06:30

标签: c++ qt build makefile qmake

(.qrc)如何检测构建是否必要,例如如果源文件或我的情况是资源文件.pro在上次构建后被修改了?每个文件都有一个标志吗? 我真正想做的是,通过将其添加到system(rcc -binary -no-compress resource.qrc -o resource.rcc) 文件来发送资源编译的系统命令:

resource.qrc

我想只在最后一次qmake之后修改if(RESOURCE_MODIFIED) { COMPILE RESOURCE } 文件时才这样做。这可能吗?怎么样?

最终版本应为:

IMAGE(URL)

2 个答案:

答案 0 :(得分:2)

正如另一个discussion所述,完整正确答案如下:

mytarget.target = resource.rcc
mytarget.commands = rcc -binary -no-compress resource.qrc -o resource.rcc
mytarget.depends = resource.qrc

QMAKE_EXTRA_TARGETS += mytarget
PRE_TARGETDEPS += resource.rcc

这样,只有在修改.qrc文件并且在编译应用程序时自动执行make时,才会重建自定义目标。

答案 1 :(得分:1)

QMake创建GNU Makefile(假设您在其默认模式下直接使用Qt Creator或QMake),生成的Makefile将包含将要创建的目标列表,它们的依赖关系以及创建目标的规则。构建时,进行检查以查看是否有任何依赖项的文件时间戳比目标的文件时间戳更新,并将运行规则以重新创建目标。

Kuba已经在评论中提到过 - 你可能会期待add a custom target

mytarget.target = resource.rcc
mytarget.commands = rcc -binary -no-compress resource.qrc -o resource.rcc
mytarget.depends = resource.qrc

QMAKE_EXTRA_TARGETS += mytarget