(Извините, я не могу придумать лучшего способа объяснить, кроме как включить следующую деталь)
Предварительно построенная структура:
F:\
└ Project\
└ Project.pro
└ ProjectSettings.pri
└ Source\
└ Source.pro
└ My_Library\
└ My_Library.pro
└ library.cpp
└ ...
Содержание «Project.pro»:
TEMPLATE = subdirs
SUBDIRS = Source
Содержание «Source.pro»:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += My_Library
Содержание "My_Library.pro":
include(../../ProjectSettings.pri)
TEMPLATE = lib
SOURCES += library.cpp
Содержание "ProjectSettings.pri"
TARGET = $$basename(_PRO_FILE_PWD_)
Debug:buildDir = "Debug"
Release:buildDir = "Release"
DESTDIR = $$PWD/$$buildDir/bin
OBJECTS_DIR = $$PWD/$$buildDir/$$basename(_PRO_FILE_PWD_)/obj
MOC_DIR = $$PWD/$$buildDir/$$basename(_PRO_FILE_PWD_)/moc
RCC_DIR = $$PWD/$$buildDir/$$basename(_PRO_FILE_PWD_)/rcc
UI_DIR = $$PWD/$$buildDir/$$basename(_PRO_FILE_PWD_)/gui
Структура после сборки:
F:\
└ Project\
└ Project.pro
└ ProjectSettings.pri
└ Source\
└ Source.pro
└ My_Library\
└ My_Library.pro
└ library.cpp
└ Debug\
└ bin\
└ libMy_Library.a
└ My_Library\
└ moc\
└ obj\
└ library.o
└ My_Library\ <------ WTF
└ moc\
└ Release\
└ bin\
└ libMy_Library.a
└ My_Library\
└ moc\
└ obj\
└ library.o
Проблема
Идея
- запустить
qmake -recursive
в папке Project - который строит все указанные подпроекты
- выдает кучу хорошо организованных промежуточных файлов
- и помещает все двоичные файлы для подпроектов в одну папку
- все они разделены в зависимости от области отладки или выпуска.
Кажется, это работает блестяще, за исключением дополнительной папки для каждого «подпроекта» в папке Project, каждая из которых содержит папку moc, которую я выделил «WTF» * выше.
Вопросы
- Какая (комбинация) инструкций в файлах .pro создает папки "WTF"?
- Для чего будет использоваться папка "WTF"? (имея в виду, что области отладки и выпуска указывают собственный moc)
- Есть ли способ предотвратить создание папок "WTF"?
У меня пока нет исходных файлов, которые заставили бы MOC выводить файлы moc, поэтому все папки moc на данный момент пусты.
* "WTF" = "Что за папка"