qmake INSTALLS 用于一个尚不存在的文件

qmake INSTALLS for a file not existing yet

假设我有一个test.pro文件,内容如下

unix {
    inspro.path = /tmp
    inspro.files += test.pro
}
!isEmpty(inspro.path) INSTALLS += inspro

unix {
    insdoc.path = /tmp
    insdoc.files += test.txt
}
!isEmpty(insdoc.path) INSTALLS += insdoc

运行 qmake test.pro 生成 Makefile。文件 test.pro 已经存在,创建的 Makefile 包含文件 test.pro:

的 install_inspro 和 uninstall_inspro
install_inspro: first FORCE
        @test -d $(INSTALL_ROOT)/tmp || mkdir -p $(INSTALL_ROOT)/tmp
        $(QINSTALL) /home/jianz/test/pro/test.pro $(INSTALL_ROOT)/tmp/test.pro

uninstall_inspro: FORCE
        -$(DEL_FILE) -r $(INSTALL_ROOT)/tmp/test.pro
        -$(DEL_DIR) $(INSTALL_ROOT)/tmp/ 

但是,当且仅当文件 test.txt 存在时,才会创建相应的 install_insdoc 和 install_insdoc。

如果文件 test.txt 是作为 QMAKE_POST_LINK 的一部分创建的,有没有办法强制 qmake 创建 install_insdoc 和 uninstall_insdoc?

我认为有一个自定义安装目标 CONFIG 指令可以帮助解决这个问题。添加:

    insdoc.CONFIG += no_check_exist

记录在 https://doc.qt.io/qt-5/qmake-variable-reference.html#installs
更多详细信息和注意事项,请访问 https://wiki.qt.io/Undocumented_QMake#Custom_install_config
相关Q/A:qmake copy files created while building