Ручная настройка теневой сборки в qmake

Есть функция, которая мне очень нравится в qt creator, и это Shadow build. Когда Shadow Build включен, все сгенерированные файлы (*.moc, Makefile, *.o) будут сгенерированы в данном исходном каталоге, поэтому каталог источников будет очищен. Я перехожу от создателя qt к kdevelop, и я пытаюсь понять, как эта функция работает, до сих пор я могу создать результирующие двоичные файлы, файлы moc и объектные файлы в дополнительный каталог, используя переменные DESTDIR, OBJECTS_DIR и MOC_DIR, но я не могу создать make файл в этой директории. Любые идеи?

Ответы

Ответ 1

AFAIK, что делает QtCreator, в основном сводится к следующему:

 mkdir my_shadow_build
 cd my_shadow_build
 qmake ../my_src_dir

создает сам Makefile в каталоге сборки и просто запускает

 make

создает все временные файлы в каталоге сборки, используя источники из исходного каталога. Это не требует каких-либо специальных материалов в файле .pro, а зависит от использования "снаружи".

Ответ 2

Вы также можете попробовать экспериментальный плагин поддержки QMake для KDevelop: https://projects.kde.org/kdev-qmake

Он запрашивает у вас папку для сборки при первом запуске и делает теневое создание. Обратите внимание, что вам нужно убедиться, что ваши файлы .pro и .pri написаны правильно - довольно легко его испортить. CMake намного проще в этом отношении!