Название: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: Fregloin от Октябрь 09, 2013, 12:03 Привет. Нужно собирать проект под виндой и убунтой, причем релиз и отладочный вариант раскидывать по разным папкам.
Код: QT += xml network multimedia widgets Ругается: Makefile.Debug:97: *** multiple target patterns. Stop. Делал все согласно примеров в инете, не получается и все. Сейчас закидают шапками про абсолютные пути в pro файле, но скажем так, мне нужно результаты сборки (объектники и прочее) хранить вне исходников, так как они под svn находятся. Всякий шлак будет добавляться и т.п. У меня для сборок есть своя папка builds где все объектники собираются. А так же есть результирующая папка scada_new(debug|release) куда складируются собранные либы и экзешники. Так вот надо что бы при сборке дебага, все результаты шли в debug папку, при сборке релиза в release. При сборке плагина с конфигурацией Код: win32 { Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: Fregloin от Октябрь 09, 2013, 12:18 Разобрался, в DESTDIR += D:\scada_new_debug\ нужно было убрать последний слеш ...
Теперь вопрос такой. Как по умному сделать: Есть у меня группа проектов (библиотеки, плагины и сама программа которая с этим работает). Эх проектов порядка 30 штук. Такая структура сейчас: program_root program.exe(bin/program в убунту) библиотеки dll(lib/библиотеки) plugins (плагины) extensions //тут лежат dll раскиданые по их предназначению actions logic ... viewvs Нужно как то организовать сборку под виндой и никсами, причем предусмотреть что проект может собираться на нескольких разных машинах. Хочется что бы объектники и прочий результат сборки не был в исходниках, а в идеале вообще был где то в отдельной папке. Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: lit-uriy от Октябрь 09, 2013, 14:27 Используй теневую сборку, тогда каталог исходников вообще не засоряется.
Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: alex312 от Октябрь 09, 2013, 15:11 Вот выдержка из моего проекта
Код: UI_DIR = build Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win Отправлено: lesav от Октябрь 09, 2013, 16:45 Вот мои наработки:
1. Автоматическое определение нужной директории для бинарников получаемые директории имеют вид (в зависимости от хоста на котором собирается и версии Qt) qt485_Linux.arm_gcc402 qt485_win32.x86_mingw440 qt485_win32.x86_mingw481 qt485_win32.x86_msvc2010 qt510_win32.x86_mingw480 qt510_win32.x86_msvc2010 Плагины ложатся в нужную директорию, и поиск их приложением только в той директории в которой необъодимо см. п.6 2. Автоматическое определение текущей ревизии SVN(нужен установленый svn) и обявление объявлений (простите, тафтология) для компилятора 3. В постинсталл можно добавить(дописать) некоторые действия (в моем случае добавлено удаление некоторых объектных файлов и создание объявлений для сборщика rpm,deb,msi пакетов и скрипта для документации) 4. Если изменен мажор или минор версия программы, выполняются некоторые действия (у меня удаляются объектники) 5. Автоматически добавляется символ d в конце бинарного файла (если юзаются плагины, очень удобно) 6. Генерится обявление для компилятора с именем каталога плагинов. В main остается только сделать qApp->addLibraryPath(qApp->applicationDirPath() + "/../plugins/" + quote(JCJS_PLUGIN_SUBDIR)); 7. WINDOWS - Автоматом в .rc передается информация о сборке и иконка ну и всего не припомнишь, много чего туда добавлял Основное: Нужно указать в .pro (или .pri) include( _target.pri ) Файлы снабжены комментариями. На вопросы отвечаю редко, т.к. много работы Исходников по некоторым причинам в архив не положил, только файлы pro и pri Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: Fregloin от Октябрь 12, 2013, 20:32 Спасибо, на след неделе посмотрю, сейчас далеко от рабочей машины.
Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: Fregloin от Октябрь 23, 2013, 09:45 Честно говоря тяжеловато было понять ваш проект...
Но кое что уже прояснилось. Объеденил все дочерние проекты в один через SUBDIRS Код: TEMPLATE = subdirs Вот проеткный файл одной из библиотек archivewidgets: Код: QT += widgets Т.е. DLLDESTDIR создает в линуксе конечную папку куда нужно копировать результат сборки, но саму библиотеку почему то не копирует. а DESTDIR копирует, но я так понимаю разница между этими двумя переменными есть... подскажите как решить этот вопрос? Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: lesav от Октябрь 23, 2013, 20:40 А почему такой страх к *.a файлам ?
Если они Вас чем-то не устраивают, настройте постбилд QMAKE_POST_LINK После успешной сборки будет выполнена команда указанная в QMAKE_POST_LINK Код: win32:{ В постбилд можно напихать что угодно, например запуск сборки пакета msi или даже копирование полученных файлов на целевой хост и запуск программы на удаленной машине Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: Fregloin от Октябрь 23, 2013, 23:02 не то что бы страх, но у меня эти файлы потом пакуются в deb пакет простым скриптиком. А *.а файлы там ни к чему.
Название: Re: Помогите создать корректный pro файл для сборки проектов unix/win(debug|release) Отправлено: lesav от Октябрь 25, 2013, 05:54 Тогда нефик нагружать постбилд всякой ерундой. Скриптик, который генерит deb может и почистить директорию перед тем как собрать пакет
|