将qmake配置为安装标头到不同的子文件夹

Dai*_*ius 3 qt qmake nmake

我有一个项目,其中头文件在qt项目文件中的不同子文件夹(/ config/.h;/thread / .h等)中包含,如:

HEADERS += $$PWD/src/*.h
HEADERS += $$PWD/src/config/*.h
Run Code Online (Sandbox Code Playgroud)

然后安装简单描述:

headers.files = $$HEADERS
headers.path  = $$INSTALL_INC_DIR/proj
Run Code Online (Sandbox Code Playgroud)

使用此lib的其他一些项目将包含来自该安装目录的文件,并且会出现问题 - 所有.h文件都复制到同一文件夹,没有子文件夹,并且在代码中它们包含在子文件夹(#include <proj/config/config.h>)中.

有可能告诉qmake(或实际上是nmake)复制文件时保留原始文件夹结构吗?

Tam*_*mők 6

这对我有用:

headerinstall.pri:

for(header, INSTALL_HEADERS) {
  path = $${INSTALL_PREFIX}/$${dirname(header)}
  eval(headers_$${path}.files += $$header)
  eval(headers_$${path}.path = $$path)
  eval(INSTALLS *= headers_$${path})
}
Run Code Online (Sandbox Code Playgroud)

在.pro文件的末尾:

INSTALL_PREFIX = /tmp/installprefix
INSTALL_HEADERS = $$HEADERS
include(headerinstall.pri)
Run Code Online (Sandbox Code Playgroud)