Название: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 04, 2015, 22:39 Собирается приложение в 3-х вариантах - win32, lin32, lin64. Чёрт его знает, может и для win64 понадобится. Это 42 плагина, у каждого свой подкаталог сборки, со своими debug и release. Сейчас собираю разные варианты в разных ветках, чтобы не пересекались объектные модули 32 и 64 бита. Приходится копировать исходники, это муторно. Есть маза объединить всё в одну ветку (и возможно даже расшарить её между машинами, на которых делается сборка), но тогда рабочие каталоги debug и release, куда ложатся объектники, у каждого плагина надо разделить. Идеальный вариант - чтобы создались сами каталоги debug.w32, debug.l32, debug.l64. Разрядность сборки я положим определил. Но не вижу, как добавить суффиксы к рабочим каталогам. Не к финальному каталогу, куда кладутся результирующие динамические библиотеки плагинов, а к каталогам, где создаются файлы с расширением .o, а также moc_*.cpp, qrc_*.cpp.
Есть такая возможность вообще у QMake? Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Racheengel от Ноябрь 04, 2015, 23:13 OBJ_DIR ?
Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 05, 2015, 00:40 Почти. OBJECTS_DIR. Причем менять очевидно придётся еще и UI_DIR, MOC_DIR, RCC_DIR.
Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Racheengel от Ноябрь 05, 2015, 01:48 Ну UI_DIR, RCC_DIR и MOC_DIR скорее всего нет, т.к. генеренные файлы для дебага и релиза одинаковые.
Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 05, 2015, 03:11 По идее да, но зачем-то их кладут в те же каталоги, что и объектники, раздельно. Если всё равно, то можно в -build- каталог класть, чтобы не плодить кучи дублей при последовательных debug/release сборках. Может это для чего-то предусмотрено.
Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: qate от Ноябрь 05, 2015, 11:33 я собираю каждую сборку в разных каталога и не копирую ничего:
mkdir linux32 cd linux32 qmake ../Src -spec linux-g++-32 make cd .. mkdir win32 cd win32 qmake ../Src -spec win32-g++ make или я не понял вопроса ? Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 05, 2015, 13:13 Это годится только для сборки совсем финального релиза всех вариантов одновременно, и на одной машине. У меня, кроме сборки, пока ещё идёт доработка и отладка (она может вообще не закончиться - планов громадьё). На трёх машинах с разными ОС. Так необходимо, поскольку софт на них общается через IP. Необходимо иметь возможность запускать его в отладчике на каждой машине.
Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Racheengel от Ноябрь 05, 2015, 15:07 Если собирать через Qt Creator, то он это все умеет "из коробки" с помощью shadow builds.
Или как у вас система сборки устроена? Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: qate от Ноябрь 05, 2015, 15:58 Это годится только для сборки совсем финального релиза всех вариантов одновременно, и на одной машине. У меня, кроме сборки, пока ещё идёт доработка и отладка (она может вообще не закончиться - планов громадьё). На трёх машинах с разными ОС. Так необходимо, поскольку софт на них общается через IP. Необходимо иметь возможность запускать его в отладчике на каждой машине. т.е. нужно: 1. собрать win32, linux32, linux64 2. отослать собранные бинарники и исходники на все нужные машины 3. запустить там их под отладчиком (qtcreator) я бы делал так одним скриптом: 1. собрал все архитектуры на одной машине (на своей основной) как писал выше 2. scp\rsync на нужные машины 3. запуск "там" qtcreator для linux машин тут проблем нет ибо ssh и scp "изкаробки" для windows есть cygwin в конце отладки шаг 1 останется для сборки релиза Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 05, 2015, 17:35 Если я объединю исходники и разнесу объектники, то мне больше ничего не нужно. Сборка производится на той машине, на которой запускается отладка - физических машин у меня две, поэтому сборка win32 и lin64 идёт параллельно на разных машинах, что гораздо быстрее. Есть еще виртуальная lin32, но на ней я редко отлаживаю, поэтому собираю редко. Собирать каким-то отдельным действием мне не нужно - при нажатии отладки в Креаторе новое приложение соберется, если исходники изменились. Без лишних сущностей. Отсылать собранные бинарники на все машины - это тот ещё мрак будет, при полной сборке сейчас получаются 42 новых бинарника, дальше будет больше. Это больше, чем я за раз правлю исходников. А при объединении вообще ничего никуда отсылать не надо будет, всё будет ложиться на своё место.
Поэтому зачем там cygwin я не понял... В Windows собирается и работает нативный .exe. Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: qate от Ноябрь 06, 2015, 12:52 1. почему получились разные исходники ?
2. как отсылается собранное приложение на другую машину ? Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 06, 2015, 13:03 1. почему получились разные исходники ? 2. как отсылается собранное приложение на другую машину ? 1. Исходники одинаковые. 2. Собранное приложение никуда не отсылается. Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: qate от Ноябрь 06, 2015, 14:46 1. почему получились разные исходники ? 2. как отсылается собранное приложение на другую машину ? 1. Исходники одинаковые. 2. Собранное приложение никуда не отсылается. 1. Тогда я не понял фразу "Приходится копировать исходники, это муторно." 2. А что значит фраза "Необходимо иметь возможность запускать его в отладчике на каждой машине. " ? Название: Re: Как проще всего добавить суффиксы к рабочим каталогам release/debug? Отправлено: Гурман от Ноябрь 06, 2015, 15:27 1. При изменении исходников на одной машине пока что приходится копировать их на две других (просто некогда было SVN ставить и настраивать в своё время, да не очень хочется). Но скоро это не будет требоваться. Думаю, сегодя уже всё доделаю. Собственно сборка с разными объектыми каталогами работает, осталось правильно настроить расшаривание каталога.
2. Именно это и значит. Приложение надо запускать в отладчике на всех трех разных машинах одновременно. Может кому-то это время сэкономит Код: win32:contains(QMAKE_HOST.arch, x86):{ SYSTEM_SUFFIX = w32 } |