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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QMake - parallel builds  (Прочитано 5525 раз)
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« : Август 26, 2015, 12:52 »

Всем привет,

возникла, значит, следующая проблема: есть несколько проектов, как либы, так и конечные exe. Сборка базируется на qmake+nmake (компилятор от Visual Studio 2013). "Основной" проект для билда - pro-файл с TEMPLATE = subdirs, выглядящий примерно так:

TEMPLATE = subdirs

SUBDIRS += lib1
SUBDIRS += lib2
SUBDIRS += lib3

SUBDIRS += exe1
exe1.depends = lib1 lib2

SUBDIRS += exe2
exe2.depends = lib1 lib2 lib3

SUBDIRS += exe3
exe3.depends = lib2 lib3

SUBDIRS += exe4
exe4.depends = lib1 lib3

ну и т.д, основный смысл в том, что множестно exe зависимо от множества lib.
Поэтому нужно, чтобы сначала были созданы либы, а потом уже экзешники.
Это все в принципе работает, но проекты собираются один за другим. Это душит производительность на корню.
Идеально бы было, чтобы все либы собрались параллельно, а только потом так же параллельно собрались бы все exe.
Каким способом можно достить подобного?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Август 26, 2015, 14:07 »

а если либы зависят друг от друга?...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #2 : Август 26, 2015, 14:31 »

Все либы статические, друг от друга не зависят.
Зависят только exe...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
vregess
Гость
« Ответ #3 : Август 26, 2015, 17:36 »

jom (https://wiki.qt.io/Jom) пробовал?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Август 26, 2015, 17:36 »

да, но jom проблему не решает Грустный
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
vregess
Гость
« Ответ #5 : Август 26, 2015, 18:55 »

можешь пояснить? вроде он как раз должен параллельно собрать либы, а потом так же параллельно все exe. разве не так?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Август 27, 2015, 01:08 »

Нет, к сожалению. Делает то же, что nmake - собирает строго по одному, даже если ему -j указать...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Август 27, 2015, 08:32 »

Да, он собирает по одному проекту, но используя все ядра процессора.
Записан
Bepec
Гость
« Ответ #8 : Август 27, 2015, 08:39 »

Вариант с запуском n копий nmake вами не рассматривается???
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #9 : Август 27, 2015, 12:13 »

Вариант с запуском n копий nmake вами не рассматривается???

Да в итоге так и сделали. Пришлось тупо через msbuild 2 солюшена собирать, один с либами, другой с экзешниками. Просто хотелось найти "родное" решение, через Creator. Но раз нет, так нет Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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