(Извините, я не могу придумать лучшего способа объяснения, кроме как путем включения следующих деталей)
Структура перед сборкой:
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"?(учитывая, что области Debug и Release задают свой собственный moc)
- Есть ли способ предотвратить создание папок "WTF"?
У меня нет источникафайлы, из-за которых MOC выводит файлы moc, поэтому все папки moc на данный момент пусты.
* "WTF" = "What The Folder"