Структура моего C ++ проекта выглядит так:
root
root.pro
include
dir1
header1.h
dir2
header2.h
src
src.pro
dir1
source1.cpp
dir2
source2.cpp
Я пытаюсь сгенерировать проект msvc, используя опцию CONFIG — = flat, чтобы сохранить организацию файлов. Это прекрасно работает для исходных файлов (фактически каждый файл в том же каталоге, что и .pro или любой более глубокий каталог).
Но для моего каталога «include» сгенерированные фильтры довольно странные / глупые!
MSVC_project
Header Files
..
include
dir1
header1.h
dir2
header2.h
Source Files
src1
source1.cpp
src2
source2.cpp
Похоже, qmake пытается воссоздать структуру каталогов относительно каталога .pro.
Подача переменных HEADERS и SOURCES qmake с относительными или абсолютными именами файлов ничего не меняет.
Мой файл src.pro, ничего особенного:
NAME = proj_name
TEMPLATE = lib
CONFIG -= flat
QT += core gui opengl
ROOTDIR = ..
#ROOTDIR = $$system(cygpath -aw ../..)
HEADERS_PATH = $$ROOTDIR/include
INCLUDEPATH += $$HEADERS_PATH
HEADERS += $$system(find $$HEADERS_PATH -name "*.h")
SOURCES += $$system(find . -name "*.cpp")
...
Любая идея, как я могу сказать qmake генерировать надлежащие фильтры?
Задача ещё не решена.
Других решений пока нет …