LINUX.ORG.RU

Какую систему сборки вы используете в своих проектах?

 


0

1

Предыдущее голосование, похоже, было в 2017 году.

Мультивыбор доступен. Ninja оставляю, чтобы не плодить cmake + make, cmake + ninja, так что если он используется как низкоуровневое решение, как и в случае с make, не стесняйтесь их тоже отмечать.

P.S. Из ранее представленных вариантов imake заменён на cargo.

  1. make (GNU, BSD и др.) с самописными Makefile 196 (53%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. CMake 138 (38%)

    *********************************************************************************************************************************************************************************************************************************

  3. Скрипты bash/sh/etc 68 (19%)

    ***************************************************************************************************************

  4. Предоставляемая/Встроенная в IDE 47 (13%)

    ****************************************************************************

  5. Другой вариант/Самописная система сборки (в комментариях) 44 (12%)

    ***********************************************************************

  6. Gradle 41 (11%)

    ******************************************************************

  7. qmake 37 (10%)

    ************************************************************

  8. Apache Maven 34 (9%)

    *******************************************************

  9. Meson 27 (7%)

    ********************************************

  10. Cargo 27 (7%)

    ********************************************

  11. Autotools (и его инструменты Automake/etc) 21 (6%)

    **********************************

  12. Setuptools 6 (2%)

    *********

  13. Scons 5 (1%)

    ********

  14. Apache Ant 5 (1%)

    ********

  15. Bazel 5 (1%)

    ********

  16. Qbs 3 (1%)

    ****

  17. Waf 3 (1%)

    ****

Всего голосов: 707, всего проголосовавших: 367

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 6)

Ответ на: комментарий от etwrq

Это не всегда нужно, иногда и ручного мейкфайла хватает. Набор автотулз не везде и не всегда существовал, тащемта. А вот как стало нужно, так и начали прикручивать к мейку сначала автотулз, и далее везде.

gns ★★★★★
()
Ответ на: комментарий от gns

тащемта он описывал либы/хедеры/опции + итоговые Makefile's +
тестовые poc для требуемых либ = версия, результаты вызовов комбинаций требуемых функций, тест целевой системы по размерам int/float/double etc.
ну и я не против тащемта наколенного баш(Makefile)-скриптинга, если тенденция и видение позволяют ;-) - правда, говнецом-с, попахивает-с, извиняюс-с

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 1)
Ответ на: комментарий от etwrq

Кто он? И что он описывал?

Если нужно из кучи TeXов книжку собрать, то какие либы нужны и баш-скриптинг? Баш-то не везде есть, кстати.

gns ★★★★★
()

безусловно cmake с ниндзей. Современный cmake с установкой свойств для таргетов гораздо лучше того, что было раньше.

Кстати советую провести такой эксперимент. Взять openssl и собрать его стандартной системой сборки. Потом взять какой-нибудь проект с гитхаба, в котором вокруг этой либы запилили cmake (тысячи их), и сравнить скорость и удобство.

Lrrr ★★★★★
()
Ответ на: комментарий от gns

autotools, automake, autoconf, autogen
тащемта они.
и с их помощью собираются ~30/40% компонентов любого дистрибутива.
boot-into-[rust|go|java|scheme|erlang] пока ещё не показали

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 4)
Ответ на: комментарий от etwrq

Кажется мы о разном. Диалог глухих.

gns ★★★★★
()
Ответ на: комментарий от X512

где-то читал что debian своими средствами может себя, базовую систему, из своих репозиториев отстроить, емнип - вплоть до совпадения хэша ребилженых бинарников.

etwrq ★★★★★
()
Ответ на: комментарий от etwrq

А Nix может любой пакет отбилдить до совпадения хешей (собственно он только так и билдит), при этом без разницы какая система сборки у этого компонента, хоть написанные руками bash скрипты.

James_Holden ★★★
()
Ответ на: комментарий от James_Holden

наследник, рад что QB для каждого пакета возможен;)

etwrq ★★★★★
()
  • make Мои скромные нужны покрывает на 142%

В конце опроса победит make, уверен на 142%. Если нет, не буду ходить на лор месяц, а то весь испереживаюсь от негодования.

LINUX-ORG-RU ★★★★★
()

cmake+make или cmake+VisualStudioSolution (т.е. если делаю кроссплатформ, то делаю свои симейки так чтобы они генерили нативное решние для VisualStudio).

А Ninja (который с определенной версии Смейка стал юзаться по умолчанию - отключаю, и всегда заставляю cmake работать с make, я конечно знаю о плюсах в скорости сборки у Нинзя, но мне это как ни странно менее приоритетно чем более красивый(читай привычный) вывод сборки от make)

И еще главное наверное деже не в выводе а то что в свое время даже упорно погуглив я не нашел как наложить ограничение Нинзя на кол-во потоков, он использует для сборки все ядра - из-за этого моей системе не хватает оперативной памяти для сборки на крупных проектах. А в make я могу легко указать нужное количество потоков для сборки.

Доходило до того что если не мог отказаться от Нинзя по определенным причинам (например сборка не моих проектов, где изначально все на Нинзя) - отключал ядра в настройках виртуальной машины, чтобы собрать исходники :)

bonta ★★★★★
()

Я обычный домашний пользователь и ничего не использую из этого)

irrlicht
()

make, CMake+Ninja, но иногда и tup.

Малопопулярная утилита, а жаль.

dataman ★★★★
()
Ответ на: комментарий от bonta

Держи: parallel jobs

Можно ещё так:

cmake SRC_DIR -G Ninja
ninja -j N_OF_THREADS

Можно ещё в самом CMakeLists прописать при желании.

P. S. У ninja сократили вывод до минимума и убрали цветную подсветку, дабы небыло лишних задержек во время сборки, он выводит только важные сообщения. И у него вроде есть опции уровня verbosity.

Dr64h ★★
()
Последнее исправление: Dr64h (всего исправлений: 1)
Ответ на: комментарий от bonta

даже упорно погуглив я не нашел как наложить ограничение

Позор какой. А ninja --help ты не догадался посмотреть? Или предположить что ключ такой же как у make?

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Не только хелп, но и гугл, и такой же ключ пробовал - не помогло, все равно нинзя продолжал использовать все ядра.

bonta ★★★★★
()
Последнее исправление: bonta (всего исправлений: 1)

Осилил make ом собирать драйвер для вай фай адаптера. Собственно это не мой проект(может форкнуть его и добавить туда реадме с интрукцией?) но при обновлении ядра нужно повторно это делать.
Имею ли я право гордо написать что использую Make!?

Нет, не проголосовал.

Sapetuko ★★
()
Последнее исправление: Sapetuko (всего исправлений: 2)

Странный вопрос. Как будто новые проекты каждый месяц создают, и всегда дают выбрать систему сборки на свой вкус.

snizovtsev ★★★★★
()
Ответ на: комментарий от Lrrr

У meson есть прикольная фича subprojects, когда можно взять чужой проект гитовым сабмодулем и практически не меняя его импортировать таргеты в единое дерево сборки (т.е. без всяких install и FindSomething). cmake так ещё не научили?

snizovtsev ★★★★★
()

make (выпиливаю, в качестве интерпретатора kati для всего, кроме ядра), CMake (тоже уже выпиливаю), Meson (постепенно перехожу на этот вариант), ну и, конечно, всё это подпёрто скриптами на POSIX Shell.

CYB3R ★★★★★
()
Ответ на: комментарий от snizovtsev

странный вопрос, если честно. Рекурсивность - одно из основных свойств всех систем сборки, add_subdirectory в cmake было с начала времен.

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

add_subdirectory для внешнего проекта редко работает как хочется, т.к. нет не добавляет нового пространства имён.

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

можно взять чужой проект гитовым сабмодулем и практически не меняя его импортировать таргеты в единое дерево сборки

Проект на meson тоже должен быть, разумеется?

grem ★★★★★
() автор топика
Ответ на: комментарий от Rodegast

Пока вас здесь трое.

grem ★★★★★
() автор топика

Разумеется cargo. Тратить своё время на C/C++ в наше время жуткая глупость, свободное время для своих проектов слишком ограничено.

rekket
()

Cargo почти всегда, изредка make для чего-нибудь тривиального нержавого.

slepoy_pew
()

Надо всё в один файл писать, сборка - зло

DumLemming ★★
()
Ответ на: комментарий от rekket

Чего только не наподключают в проект, лишь бы STL не использовать.

grem ★★★★★
() автор топика

Make с самописными Makefile, MSBuild.

thesis ★★★★★
()
Ответ на: комментарий от hobbit

Нужды локалхостные :)) А так, с локалхоста где есть make и его друзья можно собрать чво надо как надо :D с pkg-config вообще ляпота. Ну под прости хоспади венду собрать могу. Так что не *nix-only. Хотя сборка это фигня. Тут уже гораздо важнее как код написан, а написан он в 99.999999% случаев под аля POSIX ибо нутыпонял.

LINUX-ORG-RU ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.