【问题标题】:qmake INSTALLS for a file not existing yetqmake 安装一个尚不存在的文件
【发布时间】:2021-09-18 23:44:01
【问题描述】:

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

【问题讨论】:

    标签: qt qmake


    【解决方案1】:

    我认为有一个自定义安装目标 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
    相关问答:qmake copy files created while building

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-28
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多