The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Доступны системы сборки CMake 3.27.0 и Meson 1.2"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступны системы сборки CMake 3.27.0 и Meson 1.2"  +/
Сообщение от opennews (??), 23-Июл-23, 10:08 
Опубликован релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.27, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки. Код  CMake написан на языке C++  и распространяется под лицензией BSD...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=59481

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 23-Июл-23, 10:08   +/
Какие достоинства и недостатки у этой пары?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #3, #5, #26

2. Сообщение от Аноним (2), 23-Июл-23, 10:26   +1 +/
Начнем с того, что это взаимоисключающие инструменты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #4

3. Сообщение от Аноним (3), 23-Июл-23, 10:40   +1 +/
Первое -- перегруженное легаси с нарушениями совместимости из-за чего сборочные скрипты постоянно отваливаются и пойди разберись из-за чего, сомнительным синтаксисом и документацией, вызывающей определённые вопросы. Второе впихнёт в тебя весь гномовский кал и простым исправлением сборочного скрипта, как с autotools, тут не обойдёшься, но лучше ничего не придумали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #9, #13

4. Сообщение от llolik (ok), 23-Июл-23, 10:50   +1 +/
Не совсем. Как минимум у Meson есть модуль-транслятор CMake ( https://mesonbuild.com/CMake-module.html ), который позволяет выполнять сборку CMake подпроектов прямо из Meson (в идеале, даже не меняя ничего в исходном скрипте CMake-а) и разрешать зависимости с помощью cmake-а.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

5. Сообщение от Аноним (5), 23-Июл-23, 11:09   +/
> Какие достоинства и недостатки у этой пары?

обычные болгеносы - в ядре Linux по прежнему make

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #8

6. Сообщение от Аноним (6), 23-Июл-23, 11:24   –1 +/
Корпораты по своим личным гендерным причинам нее переносят autotools. Ядро Линукс как-то собирается и ничего. А у этих не получается, практически со студенческой скамьи начинают сборочные системы строгать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #11

7. Сообщение от Аноним (29), 23-Июл-23, 11:32   +/
Кто о чем, а вшивый о бане...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

8. Сообщение от Аноним (8), 23-Июл-23, 11:36   +/
Что не является преимуществом ни ядра, ни мейка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #12, #15

9. Сообщение от anon223516234 (?), 23-Июл-23, 11:39   +2 +/
Понимаю твои страдания, связанные с несовместимостью и сложностью синтаксиса в cmake. Однако, мне довольно сложно сопереживать твоему опыту, так как мои собственные взаимодействия с этим инструментом не вызывали таких проблем. Возможно, это связано с разными подходами к использованию cmake или различиями в наших проектах. Несмотря на все трудности, всё-таки cmake остаётся одним из самых мощных и гибких инструментов для сборки проектов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #14

11. Сообщение от Аноним (2), 23-Июл-23, 11:55   +1 +/
В ядре Linux autotools не используется. Вообще, autotools - это груда костылей на никому не известных язычках вроде M4 кишками наружу - у авторов не было никакого понятия об инкапсуляции. Сравнивать его "архитектуру" можно только с CVS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #31, #32

12. Сообщение от Аноним (5), 23-Июл-23, 11:59   +/
> Что не является преимуществом ни ядра, ни мейка.

Linux использует 100% населения земли поэтому он нужен как воздух а с ним и make, а кому нужен cmake и meson кроме пары широкоизвестных в узких кругах проектов? "лучше гор могут быть только горы"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #18, #24

13. Сообщение от Аноним (29), 23-Июл-23, 12:07   +1 +/
> autotools
> лучше ничего не придумали.

Только вот оно прибито гвоздями к unix-окружению. А сабжы пытаются быть кросс-платформенными.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #23

14. Сообщение от Аноним (3), 23-Июл-23, 12:35   +/
Сколько у тебя того опыта? В этом всё дело. Через несколько лет забвения сборочные скрипты тупо разваливаются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #16, #17

15. Сообщение от llolik (ok), 23-Июл-23, 12:48   +/
А никого не смущает, что это замены autotools, а не make-а?
Cmake умеет работать и с make-ом напрямую. Meson исходит из того, что проще простую, как валенок, ninja (вот это, как раз, альтернатива make) собрать под нужную платформу, чем писать отдельный генератор ещё и под make https://mesonbuild.com/FAQ.html#why-is-there-not-a-make-backend
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

16. Сообщение от anon223516234 (?), 23-Июл-23, 13:06   +/
как и все остальное в it.
либо адаптируется, либо отправляется в архив - третьего не дано
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #38

17. Сообщение от Rezzet (??), 23-Июл-23, 13:27   +1 +/
Через несколько лет почти любой код разваливается, если его не трогать, библиотеки обновляются, интерфейсы меняются, код перестает собираться. Мы в шутку называем это периодом полураспада кода. Cmake редкостная дрянь, но ничего лучше на данный момент нету. Autotool может быть и хорош для сборки, но сборка это одна из из функций которые нужны. Система сборки это инструмент разработчика. Идея о том что пользователи будут устанавливать пакеты из исходников - это утопия. Смысла она особого не несет. А вот проблемы разработчиков Cmake решает гораздо лучше Autotool. Как минимум тем что есть интеграция в среды разработки. Интеграция в пакетные менеджеры: vcpkg и прочие. Жизнь с++ разработчика с приходом Cmake стала значительно лучше. И де факто это сейчас является стандартом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #19, #28

18. Сообщение от Rezzet (??), 23-Июл-23, 13:34   –1 +/
Не понимаешь смысла и назначения Cmake и Make. Cmake это в первую очередь инструмент разработчика. Как Autolool решит проблему работы в Visual Studio, XCode, Clion и QtCretor под Win, Mac, Linux одновременно команды разработчиков? А это реальность в которой живу уже который проект подряд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #20

19. Сообщение от Аноним (3), 23-Июл-23, 13:45   +/
В том и дело, autoreconf прогоняешь и всё собирается дальше на новой версии, как и собиралось. Есть куча проектов, десятилетиями не менявших сборочные скрипты, и у них по-прежнему всё в порядке при сборке в современных системах. Что касается зависимостей, то тот же pkg-config дохнет куда реже сомнительных скриптов. Если совместимость в библиотеке есть, то она никуда не денется, а на нет и суда нет. Но это другой уровень забот и cmake просто справляется с этим хуже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #22, #39

20. Сообщение от Аноним (5), 23-Июл-23, 14:26   +1 +/
> Как Autolool решит проблему работы в Visual Studio, XCode, Clion и QtCretor под Win, Mac, Linux одновременно команды разработчиков?

для сборки Linux не нужен Autotool - как же работают над ним одновременно сотни тысяч разработчиков по всему миру?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #33

21. Сообщение от Аноним (21), 23-Июл-23, 17:08   –1 +/
Кто знает, поддерживает ли Cmake модули в C++?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25

22. Сообщение от Аноним (-), 23-Июл-23, 17:53   +1 +/
> В том и дело, autoreconf прогоняешь и всё собирается дальше на новой версии, как и собиралось.

В этом месте автотулс педальный и правда всех делает с отрывом. Что-что а пересобрать новую программу на олдовой системе, или олдовую программу на свежей системе - обычно прокатывает.

С cmake это будет 50/50. А с мезоном - как обычно с всей питонятиной, через пару лет оно вообще уже не совместимо с собой. А система конфигурации/сборки это оно. И не должно становиться источником проблем хуже чем собираемый, блин, код и требовать постоянного внимания. Потому что тогда получается что хвост виляет собакой.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

23. Сообщение от Аноним (-), 23-Июл-23, 17:55   +1 +/
> Только вот оно прибито гвоздями к unix-окружению. А сабжы пытаются быть кросс-платформенными.

Только это окружение можно и в винде вкатить. И если на то пошло автотулс работает в большем числе всяких странных окружений чем вон те вместе взятые. Уж мезон вообще настолько "кроссовый" что кроме винды линя и мака на целых полутора архитектурах - по сути ничего и не умеет. И уж не ему про кроссовость вещать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #27

24. Сообщение от Аноним (-), 23-Июл-23, 17:55   +/
> Linux использует 100% населения земли поэтому он нужен как воздух а с ним и make

Скайнет совсем не палится :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

25. Сообщение от archer73 (?), 23-Июл-23, 19:07   +1 +/
Точно поддерживает модули Fortran. Модули C++ вроде пока работают в экспериментальном режиме.
https://github.com/Kitware/CMake/blob/master/Help/dev/experi...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

26. Сообщение от archer73 (?), 23-Июл-23, 19:23   +/
meson проще, быстрее, неплохо документирован для начала работы. По факту, не является системой сборки. На деле высокоуровневый конфигуратор для системы сборки ninja. Позволяет очень быстро подготовить сборку своего проекта, но трудно кастомизируется, если нужно что-то нетривиальное. ИМХО наркоманское исполнение subproject. Для линковки необходимых библиотек иногда нужно долго подбирать их название, удовлетворяющее meson. Используется проектом mesa3d.
Сmake сложен для освоения, многословен, ужасная документация, однако содержит кучу возможностей для кастомизации сборки под свои потребности. По факту, сейчас является самой распространенной системой сборки (даже учебники по нему видел).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

27. Сообщение от Аноним (29), 23-Июл-23, 20:02   +1 +/
> Только это окружение можно и в винде вкатить.

А поддержку MSVC в автотулз тоже вкатишь?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

28. Сообщение от Аноньимъ (ok), 23-Июл-23, 21:04   –5 +/
>Жизнь с++ разработчика с приходом Cmake стала значительно лучше.

А насколько бы она стала лучше с уходом С++...

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

Это же нужно было так фундаментально испортить всё вообще.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #29

29. Сообщение от Аноним (29), 23-Июл-23, 21:33   +/
> Не перестаю поражаться тому хроническому ужасу из соплей костылей и палок который терроризирует мир айти

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #30

30. Сообщение от Аноньимъ (ok), 23-Июл-23, 22:03   –1 +/
С/C++ сильно усложняет разработку, делая её не просто дорогой но и недоступной для небольших бюджетов.

При этом С++ активно продвигал конкретно майкрософт.
То что гемдев в массе это виндовс + С++ как бы не совпадение.

Сишка уж очень выглядит как саботаж индустрии.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

31. Сообщение от Вы забыли заполнить поле Name (?), 23-Июл-23, 22:16   +1 +/
> на никому не известных язычках вроде M4

m4 is a general-purpose macro processor included in most Unix-like operating systems, and is a component of the POSIX standard. First appeared    1977; 46 years ago

CMake точно также можно называть костылем. Особенно учитывая такое явление, как modern cmake.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

32. Сообщение от ыы (?), 24-Июл-23, 08:04   +2 +/
>не известных язычках вроде M4

это прородитель всего сущего... RTFM LMD!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #42

33. Сообщение от llolik (ok), 24-Июл-23, 10:50   +/
> для сборки Linux не нужен Autotool

Потому что у них есть собственный Kconfig/Kbuild.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #34

34. Сообщение от Аноним (34), 24-Июл-23, 11:26   +/
> Потому что у них есть собственный Kconfig/Kbuild.

он конфигурирует само ядро а не собирает информацию о системном окружении - ядро самодостаточный проект, в отличие от болгеносов где на каждый чих тащат внешние библиотеки

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #35

35. Сообщение от llolik (ok), 24-Июл-23, 11:50   +/
>> Потому что у них есть собственный Kconfig/Kbuild.
> он конфигурирует само ядро а не собирает информацию о системном окружении

Так и autotools/cmake/meson нужны для того, чтобы конфигурировать сборку проекта под конкретное окружение. Соответственно и данные об этом окружении надо собрать (для ядра конкретно этого не надо, тут согласен).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #36

36. Сообщение от Аноним (34), 24-Июл-23, 11:56   +/
> Соответственно и данные об этом окружении надо собрать

для болгеносов. Если проект самодостаточный - нет, поэтому достаточно обычного make, kconfig вообще не аналог autotools/cmake/meson - он конфигурирует внутреннюю структуру проекта.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

38. Сообщение от Аноним (38), 24-Июл-23, 14:50   +/
Скоро будет 5 лет проекту на Meson кодовая база ~100_000 строк,
но только патчи и правки. В остальном не трогает никто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

39. Сообщение от Rezzet (??), 25-Июл-23, 02:20   +/
Вы по прежнему не поняли смысл. Взять и собрать приложение это одна задача. СОВСЕМ другая задача это разрабатывать приложение, именно обеспечивать сборку для процесса разработки. CMake это не система сборки. Это генератор проектов, это система описания проекта для разработчика, не для конечного потребителя. В процессе разработки возникает все время вопрос как сделать так что бы с твоей пачкой исходников люди могли работать на разных системах и в разных IDE для разработки. Именно разработчики, пользователи в этой схеме вообще отсутствуют. К ним прилетит готовый бинарь. Собирать приложение из исходников надо 3-ем красноглазым з@дротом на планете. Для установки и менеджмента приложений давно придумали пакетные менеджеры. А разрабатывать приложение нужно армии программистов, которые порой работают не только с c++. Cmake это не система сборки, это генератор проектов, или система описания проекта. Даже автор новости не понимает зачем и что нужно. Именно поэтому Cmake будет жить и развиваться. А аутотул сдохнет как система сама в себе которая непонятно зачем существует.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #41

40. Сообщение от DungeonLords (ok), 25-Июл-23, 07:59   +/
Спасибо большое за новость! Сам использую и то и то. Недавно читал новую статью про настройки CMake https://habr.com/p/741868/
Ответить | Правка | Наверх | Cообщить модератору

41. Сообщение от Аноним (3), 25-Июл-23, 08:05   +/
Не выдумывай, я говорил именно про разработку. Но сборка это часть процесса разработки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

42. Сообщение от TydymBydym (ok), 30-Июл-23, 22:38   +/
Да нахрен такие прородители? Я помню что даже sendmail.cf предпочитал руками писать (да-да, все эти правила чтобы почту от спамеров и прочих кулхацкеров фильтровать), лишь бы с этой хтонью не связываться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру