LINUX.ORG.RU

Какую систему сборки предпочесть?

 , , , ,


1

4

Не хочу autotools, не хочу cmake.
Хочу что-то современное, быстрое и с простой конфигурацией.
Что посоветуете? Сейчас просто мейкфайлы пишу, но меня это не особо устраивает.

★★★★★

а что собираешься собирать? какой язык, какие платформы?
а то у меня телепатия сегодня плохо работает из-за низкой облачности.

Iron_Bug ★★★★★
()

Сейчас просто мейкфайлы пишу,

И правильно делаешь.

но меня это не особо устраивает.

Чем?

ioway
()

Недавно заметил такой файл системы сборки. Что это за bob? Кто-нибудь пробовал?

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

waf, scons, bitbake

anonymous
()
Ответ на: комментарий от ioway

Кроссплатформенность страдает. Я хочу собирать под GNU/Linux, Mac OS X и M$ Windows. Трудно написать действительно кроссплатформенный мейкфайл. Конечно, pkg-config выручает, но не всегда.

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

а как там premake поживает, вкурсе кто?

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

ну, как выше уже заметили, недавно тут аналогичную тему обсуждали. я могу предложить boost build v2 (мой коммент про него тут система для сборки с зависимостями для C++ (комментарий)).
что в нём удобно - поддержка основных настроек разных компиляторов «искаропки» под основные системы/компиляторы (но можно любые свои добавить). файлы получаются довольно удобные в случае кроссплатформы. единственный минус (относительный, конечно) - для использования надо осваивать довольно объёмную документацию. но дока написана в духе «от простого к сложному» и в целом даёт возможность быстро врубиться в основные вещи, а потом уже переходить к наворотам.

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

cmake

Сейчас просто мейкфайлы пишу, но меня это не особо устраивает.

Да это застрелиться вообще. Это всё равно что программировать на ассемблере задачу, которая решается shell-скриптом.

asaw ★★★★★
()

Gradle, Gulp с плагинами под Си/Vala? Я, право, не в курсе о плагинах...

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

а то у меня телепатия сегодня плохо работает из-за низкой облачности

А смысл спрашивать? Всё равно ведь будешь Boost.Build советовать.

i-rinat ★★★★★
()

Кстати, какие системы сборки умеют правила с несколькими целями?

Речь идёт про генерацию сразу нескольких файлов, а не как в make. Что самое обидное, POSIX-то не запрещает сделать правильно, но везде копируют глюки первой реализации :-(

anonymous
()

не хочу cmake

Почему? Судя по всему, это как раз то, что тебе нужно.

anonymous
()

Для какого языка? А то могу gradle посоветовать.

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

Тогда тебе на страницу википедии «сравнение систем сборки». Ибо есть критерии выбора, а есть «хотелки». При наличии вторых, вопросы на форуме задавать бессмысленно.

RelativeLayout
()

biicode

Система сборки твоей мечты - biicode, только ты этого пока не знаешь.

Очень простая. Внутри использует cmake, поэтому очень гибкая и функциональная, но для простых случаев, все делает сама без ручного вмешательства в CMakeLists.txt, т.е. про cmake можно не вспоминать.

Не хочу

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

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

Гомосек чтоле? Кстати да, гомосексуализм в опенсурсе начинается именно с нестандартных систем сборки.

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

Я не гей, но и шлюх не люблю.

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

для какой задачи? вообще, универсального решения, подходящего для всех, нету.

современное, быстрое и с простой конфигурацией.

быстрое и с простой конфигурацией — это всякие make и jam.

но они не современные (что за дебильное требование...)

а современное — это gradle, cmake и прочее дерьмо. но оно не быстрое, и совсем не с простой конфигурацией.

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

Под современным я имею ввиду новомодное.

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

Apache Maven.

Если не делать ничего нестандартного, то экономит уйму времени тебе и тем, кто потом с твоей сборкой знакомится.

Если же нестандартного много, можно посмотреть на Gradle — это Apache Maven на Groovy вместо XML.

Deathstalker ★★★★★
()
Ответ на: biicode от prefetch

А вот это интересно, спасибо.

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

Гугль вот такой bob находит. Сам не пользовался, да.

Bob is a new build tool that follows the same philosophy as Make did when it was first designed, while not taking its design. As such it does not take along its syntax, its quirks, its portability issues nor does it support the tools that are built upon Make.

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

Я тоже его нашёл, но он другой какой-то.

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

Трудно написать действительно кроссплатформенный мейкфайл.

Ну так пиши для каждой системы отдельно.

mamba_namba_karamba
()
Ответ на: комментарий от i-rinat

ну мало ли, может, автор собрался не на С/C++ что-то писать. тогда я ничего посоветовать не смогу.
а так, судя по моему весьма обширному опыту работы с настоящей кроссплатформой на С/C++, boost build действительно самый удобный вариант. когда у проекта стопицот зависимостей и всё это должно компилиться на туевой хуче компиляторов в разных системах - тогда он очень даже полезен. конечно, на мелких проектах его мощь вряд ли можно заценить. но на больших сборках - весьма даже.
у меня был опыт использования других систем, но c boost build они даже близко не стояли по гибкости настроек и удобству.

Iron_Bug ★★★★★
()

Я работаю cmake + ninja, cmake + xcode, cmake + msbuild Зависит от платформы на которой собирается проект

CyberK
()

Не хочу autotools, не хочу cmake.

Не хочешь из каких-то конкретных соображений?

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

И правильно делаешь.

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

CYB3R, чем cmake не устроил?

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