首页 文章

构建时创建的qmake复制文件

提问于
浏览
4

我有一个库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 install生成任何代码,因为在生成makefile期间 $$PWD/html 及其内容不存在 . 有人能告诉我如何避免这个问题,还是我必须使用 cp

提前谢谢,马吕斯

1 回答

  • 1

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

    不要再检查最初为空的目录

    docInstall.CONFIG += no_check_exist directory
    

    由于这个目录将动态创建,我个人会选择这个 .

    显式创建目录

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

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

相关问题