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

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


person Sambatyon    schedule 02.03.2011    source источник


Ответы (2)


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

 mkdir my_shadow_build
 cd my_shadow_build
 qmake ../my_src_dir

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

 make

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

person Steffen    schedule 06.03.2011
comment
Просто хочу отметить, что это верно для qmake, cmake и даже autotools :) - person Sambatyon; 17.02.2012

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

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

person milianw    schedule 08.04.2011