Установить заголовки в соответствующие каталоги
Я пытаюсь установить заголовки моей библиотеки, используя QMake. Эти заголовки задали иерархический порядок, который также должен применяться к цели установки. Мое текущее решение для этого состоит в том, чтобы добавить много целей (каждая для одного подкаталога):
...
headers.path = /usr/include/foo/widgets
headers_base.path = /usr/include/foo/widgets
headers_data.path = /usr/include/foo/widgets/data
headers_editors.path = /usr/include/foo/widgets/editors
...
HEADERS_BASE += \
foo.hpp \
bar.hpp
HEADERS_DATA += \
data/foo.hpp \
data/bar.hpp
HEADERS_EDITORS += \
editors/foo.hpp \
editors/bar.hpp
...
HEADERS += $$HEADERS_BASE \
$$HEADERS_DATA \
$$HEADERS_EDITORS
Это тедий и ошибка-обрезка. Я хотел бы использовать что-то простое и прямое, как nobase
в автоинструментах. Что-то вроде этого:
magic_HEADERS += \
foo.hpp \
bar.hpp
data/foo.hpp \
data/bar.hpp
editors/foo.hpp \
editors/bar.hpp
Заметка
имеющий
HEADERS += \
foo.hpp \
bar.hpp
data/foo.hpp \
data/bar.hpp
editors/foo.hpp \
editors/bar.hpp
Устанавливает все заголовки в одном каталоге.
1 ответ
Заголовки будут установлены, если вы измените файл.pro с примером:
HEADERS += \
include/widgets/foo.hpp \
include/widgets/bar.hpp \
include/widgets/data/foo.hpp \
include/widgets/data/bar.hpp \
include/widgets/editors/foo.hpp \
include/widgets/editors/bar.hpp
unix {
headers.path = /usr/local/include
headers.files = $$PWD/include/*
target.path = /usr/local/lib
INSTALLS += target headers
}