在 qmake 期间检测修改的文件
Detecting modified files during qmake
qt
如何检测构建是否必要,例如, 如果修改了源文件或我的资源文件 (.qrc)
在最后一次构建之后?每个文件都有一个标志吗?
我真正想做的是,通过将此添加到 .pro
文件来发送资源编译的系统命令:
system(rcc -binary -no-compress resource.qrc -o resource.rcc)
而且我只想在 resource.qrc
文件在最后一次 qmake 之后修改时才这样做。这可能吗?如何实现?
最终版本应该是:
if(RESOURCE_MODIFIED) {
COMPILE RESOURCE
}
QMake 创建 GNU Makefile(假设您在默认模式下直接使用 Qt Creator 或 QMake)并且生成的 Makefile 将包含将要创建的目标列表、它们的依赖项以及创建目标的规则。构建时,Make 检查是否有任何依赖项的文件时间戳比目标的文件时间戳更新,并将 运行 规则重新创建目标。
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
另一个的回答,完整的正确答案是下面的代码:
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
在编译应用程序时自动执行,则自定义目标将仅被重建。
qt
如何检测构建是否必要,例如, 如果修改了源文件或我的资源文件 (.qrc)
在最后一次构建之后?每个文件都有一个标志吗?
我真正想做的是,通过将此添加到 .pro
文件来发送资源编译的系统命令:
system(rcc -binary -no-compress resource.qrc -o resource.rcc)
而且我只想在 resource.qrc
文件在最后一次 qmake 之后修改时才这样做。这可能吗?如何实现?
最终版本应该是:
if(RESOURCE_MODIFIED) {
COMPILE RESOURCE
}
QMake 创建 GNU Makefile(假设您在默认模式下直接使用 Qt Creator 或 QMake)并且生成的 Makefile 将包含将要创建的目标列表、它们的依赖项以及创建目标的规则。构建时,Make 检查是否有任何依赖项的文件时间戳比目标的文件时间戳更新,并将 运行 规则重新创建目标。
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
另一个
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
在编译应用程序时自动执行,则自定义目标将仅被重建。