我有一个库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'目录及其内容(在构建期间!)
现在应该使用INSTALL
变量将'html'及其内容复制到/ usr / share / doc / qturtle。
但是:qmake不会为docInstall
安装生成任何代码,因为在生成makefile期间$$PWD/html
及其内容不存在。有人可以告诉我如何避免这个问题,还是我必须使用cp
?
提前致谢, 的Marius
答案 0 :(得分:1)
有两种方法可以解决这个问题。
docInstall.CONFIG += no_check_exist directory
由于这个目录将动态创建,我个人会选择这个。
createDirs.commands = $$QMAKE_MKDIR $$PWD/html
这可以在目标中完成,也可以在system("$$QMAKE_MKDIR $$PWD/html")
来电中完成,具体取决于您的需求。