【问题标题】:qmake copy files created while building构建时创建的 qmake 复制文件
【发布时间】:2014-12-27 20:59:56
【问题描述】:

我有一个库 qmake 项目:

QT       += gui

TARGET = qturtle
TEMPLATE = lib

DEFINES += QTURTLE_LIBRARY

SOURCES += qturtle.cpp

HEADERS += qturtle.h\
        qturtle_global.h

docMake.commands = doxygen;
QMAKE_EXTRA_TARGETS += docMake
PRE_TARGETDEPS += docMake
QMAKE_DISTCLEAN += $$PWD/html/ -r
QMAKE_DISTCLEAN += doxygen_sqlite3.db

unix {
    docInstall.path = /usr/share/doc/qturtle
    docInstall.files = $$PWD/html/

    headerInstall.files = $$HEADERS
    headerInstall.path = /usr/include/qturtle

    target.path = /usr/lib

    INSTALLS += docInstall
    INSTALLS += target
    INSTALLS += headerInstall
}

docMake 在项目目录中运行doxygen,并创建“html”目录及其内容(在构建期间!) 'html' 及其内容现在应该使用INSTALL 变量复制到/usr/share/doc/qturtle。 但是:qmake 不会为docInstall 安装生成任何代码,因为$$PWD/html 及其内容在生成文件期间不存在。谁能告诉我如何避免这个问题,还是我必须使用cp

提前致谢, 马吕斯

【问题讨论】:

    标签: qt copy installation qmake


    【解决方案1】:

    有两种方法可以解决这个问题。

    不检查最初的空目录

    docInstall.CONFIG += no_check_exist directory
    

    由于这个目录是动态创建的,我个人会选择这个。

    显式创建目录

    createDirs.commands = $$QMAKE_MKDIR $$PWD/html
    

    这可以在目标中完成,甚至可以在 system("$$QMAKE_MKDIR $$PWD/html") 调用中完成,具体取决于您的需要。

    【讨论】:

    • 最后一个问题:你在哪里找到的? :D
    • @marius_linux:在我的脑海里。 :-) 不,源代码...顺便说一句,s/againt/against/ 在文本中。
    • 好的,我想这就是我下次要做的事情:D THX 非常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    相关资源
    最近更新 更多