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
假设我有一个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: 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