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)

Судя по пунктам, речь идёт про разные ЯП, не только про C++? Если да, то чего-то в списке явно не хватает.

А ещё использовать Maven для Java это мейнстрим, а использовать Maven для C++ — это уже гораздо интереснее. А тут они в одном пункте будут.

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

Я взял из предыдущего голосования. Прошерстил ответы в комментариях, но множественных вариантов не нашёл.

Для java или нет - неважно, некоторые сразу несколько языков поддерживают и сборку проекта с ними: я знаю проект, где собирается либа на c++ и дополнительно биндинги для python, matlab, fortran в рамках одной системы сборки, включая вызовы внешних doxygen и sphinx для сборки документации.

Да и в 2017 году вариантов можно было чуть больше вписать.

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

Мало ли. В дереве gentoo среди присутствующих пакетов autotools, похоже, является всё ещё самым популярным: ~2100 пакетов (cmake и meson даже в сумме на две сотни меньшее число дают). Сколько пакетов собирается исключительно gnu make без вспомогательных утилит, оценить сложно, но вызов функци emake используется в ~3200 пакетах.

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

Хотя конечно очевидно, что иначе опрос потеряет смысл, но стоит всё же уточнить, что «используете» - это в своих проектах.

А так же, уже осмысленное уточнение: выбрали сами (для личного проекта или как руководитель разработки в фирме), или же используете на работе где его выбрало руководство.

Сам (там, где я выбираю) использую posix-sh-скрипты с скриптовыми обёртками над компилятором и (местами) локальными утилитами на Си для генерации конфига сборки по аргументам и анализу хоста. Пытался смотреть на стандартный make, но пока не осилил (речь не про написание дефолтных правил, а про перенос на его движок той логики, что у меня в скриптах имеется). Ещё думал над написанием своего make (в котором будет всё нужное), но пока тоже не осилил.

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

Ansible, Jenkins, TeamCity, не система сборки, конечно, но все равно неразрывно связано с этим процессом.

Jaeger1999 ★★★
()

Использую Make, CMake, Meson, Qbs, Waf, Gradle, Cargo

EXL ★★★★★
()

Преимущественно cmake + ninja/samurai + ccache, старенький make конечно тоже хорошо, но приходится делать намного больше ручных правок.

Dr64h ★★
()

I-Love-Qmake и немножечно cmake ввиду засилья в рабочих проектах, пользуюсь но не сильно разбираюсь, максимум добавить новую библиотечку или путёк там файлик, что то через pkgconfig подцепить и т.д.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от hobbit

а использовать Maven для C++ — это

Извращение

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

Настолько, что мэйнтейнеру твою софтину без этих трех штук не собрать?

t184256 ★★★★★
()

bash + docker.
собираю под debian (11), ubuntu (18.04,20.04,22.04).
amd64,arm64,armhf.
собирается на Virtualbox госте с 12 ядрами.
после сборки пуляю в APT репу (reprepro).

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

На работе использую cmake+ninja, в домашних проектах GNU make, но там перекатываюсь на cmake.

snake266 ★★
()

Meson божественен. Это революция среди систем сборки C/C++. Ещё никогда не было писать описания сборки так просто, кратко и понятно.

X512 ★★★★★
()

Meson. Make, когда система сборки, в принципе, избыточна. Иногда, по необходимости cmake, но только если очень надо и не по собственной инициативе.

SkyMaverick ★★★★★
()

Доля cmake с прошлой голосовалки подросла. Плохо, хотя и предсказуемо: «любит наш народ всякое говно».

pr849
()

Для своего мелкого make, если что побольше, то autotools. А на работе полный зоопарк. Cmake, meson, autotools... Очень много мезона стало попадаться, и не сказать бы, что я в восторге.

gns ★★★★★
()

А где Cabal/Stack? Опрос тупой весьма, потому что выбор зависит от языка и среды, а не от личных предпочтений.

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

latexmk

Имхо, понятие «система сборки» подразумевает поддержку каких-то сценариев сборки. Иначе и tar можно обозвать системой сборки - он же может собрать архив из всех файлов по указанному пути.

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

Имхо, понятие «система сборки» подразумевает поддержку каких-то сценариев сборки

latexmkrc, чем не сценарий?

Иначе и tar можно обозвать системой сборки

Tar умеет вызывать доп программы в зависимости от содержимого файлов, которые он архивирует?

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

А, он и локальным может быть. Тогда вопрос снят.

annulen ★★★★★
()

Maven, one and only. Божественный XML, куча плагинов, жёсткая структура проектов, привычный секс с конфликтами зависимостей.

cocucka ★★★★☆
()

Думаю было бы информативнее делать опрос по какому-то одному языку, не мешая в кучу cargo и cmake

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

А куды деваться? Был у меня джавайский не мой проект, который надо было тупо собрать. Ну вот и пришлось антом, если оный проект оным антом и собирался...

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

Ничего лучше классического траха с простынями XMLя ещё не придумали. Там хотя бы отверстия в привычных местах, а не где желает левая пятка правой ноги gradleщика или, упаси б-же, CMAKEвика.

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

А вот, кстати, да. Почему-то есть cargo, который специфичен для ржавого.

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

Мезона с ниньзей прибавилось, разве что.

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

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

cocucka ★★★★☆
()

redo, без разницы каких реализаций (apenwarr/redo, goredo, baredo, minimal/do, redo-c и прочие).

stargrave
()
Ответ на: комментарий от ya-betmen

Один из них – я. Прикрутил себе QBS для сборки на экзотический ARM MCU. Удобно, деларативно, быстро. Очень жаль что в Qt от него отказались и он теперь плывёт самостоятельно.

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

Согласен по всем пунктам. Самая человечная система, что я видел, да ещё и весьма шустрая.

ya-betmen ★★★★★
()
Ответ на: комментарий от cocucka

Ну, что такое gradle я вообще только сейчас узнал. Судя по языковым средам, для которых эта хрень предназначена, и в дальнейшем вряд ли столкнуться с этим ужасом придется... Только что свифт, может быть, но для него есть Сверху Джобсом Данный XCode ;)

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

Думаю было бы информативнее делать опрос по какому-то одному языку, не мешая в кучу cargo и cmake

Так то многие системы сборки вообще универсальные и не прикреплены к какому-то конкретному языку. К тому же у некоторых есть только одна система сборки ориентированная под этот самый язык, как GPRbuild к примеру.

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