Russian Qt Forum
Май 02, 2024, 00:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Очень много проектов...  (Прочитано 15660 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Апрель 21, 2015, 15:28 »

Сейчас приложение состоит из 16 проектов - основной бинарник, и кучка плагинов. Но надо сделать еще 18 плагинов, каждый из которых состоит из 3-х динамических библиотек (одна библиотека сам плагин, и он подгружает ещё 2). Итого будет 70 проектов... Шокированный И это еще не всё, поскольку надо будет делать еще несколько плагинов, общее число проектов может дорасти до 80.

С этим надо что-то делать, поскольку такие тополя становятся неуправляемыми. Особенно не нравится то, что по три проекта для каждого из 18 плагинов связаны друг с другом. Было бы здорово их создание собрать в один проект, хотя бы уменьшить общее число проектов до 34. Но я так понимаю, в рамках qmake это не возможно? Один .pro проект == один выходной файл, или я ошибаюсь? Некогда сейчас нырять в qmake и разбираться с ним (18 плагинов в очереди на реализацию стоят...), просьба если кто знает способ, как сделать генерацию 3-х выходных файлов (DLL) из одного проекта, расскажите.
Записан

2^7-1 == 127, задумайтесь...
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Апрель 21, 2015, 15:35 »

Посмотрите формат pri, который в qmake используется.

А как набралось 70 проектов?
16 + 18 + ... = 70?
Записан

Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #2 : Апрель 21, 2015, 15:40 »

Создавай каждый проект как проект с подпроектами:
Код:
TEMPLATE = subdirs
SUBDIRS = \
    mainDll \
    subDll1 \
    subDll2

Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 21, 2015, 15:41 »

Use CMake, Luke.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #4 : Апрель 21, 2015, 16:19 »

А как набралось 70 проектов?


16 + 18 * 3 + ... > 70?

Цитировать
Посмотрите формат pri, который в qmake используется.

pri это я как помню - project include, то есть, всё равно будут два файла pri к одному pro

а хотелось бы, чтобы только 1 pro был для генерации 3-х dll каждого из 18 плагинов

PS хотя это несколько облегчает - меньше закладок в окне Проекты у QtCreator, и в списке проектов вроде будет легче ориентироваться
« Последнее редактирование: Апрель 21, 2015, 16:25 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #5 : Апрель 21, 2015, 16:22 »

Создавай каждый проект как проект с подпроектами:
Код:
TEMPLATE = subdirs
SUBDIRS = \
    mainDll \
    subDll1 \
    subDll2

Но это же не избавляет от 3-х файлов .pro на каждый плагин?
Записан

2^7-1 == 127, задумайтесь...
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #6 : Апрель 21, 2015, 16:24 »

Создавай каждый проект как проект с подпроектами:
Код:
TEMPLATE = subdirs
SUBDIRS = \
    mainDll \
    subDll1 \
    subDll2

Но это же не избавляет от 3-х файлов .pro на каждый плагин?
Нет, но зато хоть как то структурирует каждый плагин.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #7 : Апрель 21, 2015, 16:26 »

Use CMake, Luke.

Увы... поздно. 16 плагинов + 1 из 18-ти уже работают, а переходить на новых на CMake и иметь потом два разных формата проектов - это наверно еще муторнее будет.
« Последнее редактирование: Апрель 21, 2015, 16:28 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #8 : Апрель 21, 2015, 16:28 »

но это же не избавляет от 3-х файлов .pro на каждый плагин?
Нет, но зато хоть как то структурирует каждый плагин.

со структурированием особых проблем нет... проблема с количеством проектов - банально сложно ими в QtCreator оперировать
Записан

2^7-1 == 127, задумайтесь...
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #9 : Апрель 21, 2015, 16:44 »

но это же не избавляет от 3-х файлов .pro на каждый плагин?
Нет, но зато хоть как то структурирует каждый плагин.
со структурированием особых проблем нет... проблема с количеством проектов - банально сложно ими в QtCreator оперировать
Хм. Что тогда изменит перенос трёх про файлов в один? В итоге же всё равно та же древовидная структура?
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #10 : Апрель 21, 2015, 16:50 »

Хм. Что тогда изменит перенос трёх про файлов в один? В итоге же всё равно та же древовидная структура?

Уменьшение количества закладок в странице Проекты у QtCreator. При переключении с режима Отладка на Релиз это надо делать в каждой закладке отдельно.

Ну и список Проекты короче будет. Уже сейчас по нему лазить искать нужный файл довольно муторно, а там будет вообще нереально. Инкрементального поиска ведь нет.
Записан

2^7-1 == 127, задумайтесь...
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #11 : Апрель 21, 2015, 16:57 »

Хм. Что тогда изменит перенос трёх про файлов в один? В итоге же всё равно та же древовидная структура?

Уменьшение количества закладок в QtCreator. При переключении с режима Отладка на Релиз это надо делать в каждой закладке отдельно.

Ну и список Проекты короче будет. Уже сейчас по нему лазить искать нужный файл довольно муторно, а там будет вообще нереально. Инкрементального поиска ведь нет.
При использовании
Код:
TEMPLATE = subdirs
переключение режимов применяется на все подпроекты, настройки сборки так же применяются ко всем подпроектам. И список проектов так же будет по количеству плагинов, плагины плагинов будут в подпапках.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #12 : Апрель 21, 2015, 18:14 »

Цитировать
Use CMake, Luke.

Use QBS, Luke.  Подмигивающий

А если серьезно - посмотри как сделано, к примеру в сорцах QtCreator (для простоты можно взять самую первую его версию v 1.0.0) и сделать по аналогии.
« Последнее редактирование: Апрель 21, 2015, 18:16 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #13 : Апрель 21, 2015, 23:34 »

При использовании
Код:
TEMPLATE = subdirs
переключение режимов применяется на все подпроекты, настройки сборки так же применяются ко всем подпроектам. И список проектов так же будет по количеству плагинов, плагины плагинов будут в подпапках.

Что-то я не помню этого в используемом QtCreator 2.2.1. Менять его сейчас нельзя.
Записан

2^7-1 == 127, задумайтесь...
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #14 : Апрель 22, 2015, 08:26 »

При использовании
Код:
TEMPLATE = subdirs
переключение режимов применяется на все подпроекты, настройки сборки так же применяются ко всем подпроектам. И список проектов так же будет по количеству плагинов, плагины плагинов будут в подпапках.

Что-то я не помню этого в используемом QtCreator 2.2.1. Менять его сейчас нельзя.
Не поленился, скачал 2.2.1 - такое же поведение в окне менеджера проектов, как и в 3.3.1.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.188 секунд. Запросов: 22.