Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: DarkHobbit от Декабрь 01, 2021, 00:07



Название: Как определить список модулей при статической сборке Qt
Отправлено: DarkHobbit от Декабрь 01, 2021, 00:07
Доброй ночи.
Я статически собираю Qt 5 из исходников с помощью GCC. Сначала я удовлетворился ключом
Код:
-skip webengine
в configure. Но потом возникло желание скипнуть что-нибудь ещё, чтобы получить как можно более компактную сборку.
Можно ли как-то получить список модулей, с которыми сделана текущая сборка, чтобы 1) пополнять список запрещаемых модулей осознанно, а не наугад? 2) проверить правильность заданных мной ключей? Очень уж небыстрое это дело, действовать методом Ивана Петровича Тыка накладно получается...

P.S. На Ryzen 2600 с 64 Гб оперативки, Samsung 970 EVO Plus и Manjaro KDE Qt без вебенжина собралась аж за 23 минуты! Прогресс налицо, я помню на более слабеньком железе сборка больше 2 часов шла...


Название: Re: Как определить список модулей при статической сборке Qt
Отправлено: tux от Декабрь 01, 2021, 00:42
Ну так кто, кроме вас знает, что именно вам нужно? Можно ключи спросить у самого configure и собирать то, что нужно. Ну ещё ccache подключить, если вы на линуксе. Всякие объектные и временные файлы размещать в памяти. Многопоточность включить...


Название: Re: Как определить список модулей при статической сборке Qt
Отправлено: DarkHobbit от Декабрь 01, 2021, 07:14
Ну так кто, кроме вас знает, что именно вам нужно?
Состав модулей, которые мне нужны, я разумеется, определю сам. И если бы они определялись по принципу "включается то, что указано явно", вопроса бы не было. Но там действует обратный принцип. Я должен написать, что мне НЕ нужно.
Так вот, список кандидатов на "ненужно" хотелось бы иметь перед глазами.

Цитировать
Можно ключи спросить у самого configure и собирать то, что нужно.
Ну вот спросил я, он пишет:
Цитировать
-skip <repo>                   Exclude an entire repository from the build.
Где бы взять список этих repo, которые по умолчанию включены? Идти на страничку кутешного гита идти и просеивать список оттуда?

Цитировать
Ну ещё ccache подключить, если вы на линуксе. Всякие объектные и временные файлы размещать в памяти. Многопоточность включить...
Можно. Но скорость компиляции меня в целом устраивает, хотелось бы сфокусироваться на получаемом продукте.


Название: Re: Как определить список модулей при статической сборке Qt
Отправлено: kambala от Декабрь 01, 2021, 10:35
отдельная папка модуля на верхнем уровне исходников — это и есть «repo».

можно начать с самого минимума — core, GUI (по-моему первые два входят в qtbase), widgets, network, ну еще что-то свое добавить (т.е. skip все остальное).

может вот такой пример поможет: https://github.com/kambala-decapitator/Qt5.10-iOS9


Название: Re: Как определить список модулей при статической сборке Qt
Отправлено: DarkHobbit от Декабрь 01, 2021, 17:51
отдельная папка модуля на верхнем уровне исходников — это и есть «repo».
Да, подозрение такое мелькало, спасибо.
Цитировать
может вот такой пример поможет: https://github.com/kambala-decapitator/Qt5.10-iOS9
Код:
-skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtgamepad -skip qtlocation -skip qtmultimedia -skip qtnetworkauth
-skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland
-skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns
О! Уже кое-что, буду отсюда невозбранно выдирать отдельные куски... Что-то из этого списка мне, правда, скорее всего, как раз понадобится. :)
Спасибо.