Опубликован релиз сборочной системы Meson 1.3.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60148
Что лучше - мизон или симэйк?
Что лучше - стальная лопата или палка-копалка из каменного века?
лучше "Ишимура", а не эти ваши лопаты
Не-не-не, без Айзека и 211-V никаких Ишимур!
Точнее, что лучше надежная проверенная временем "титановая лопата с инкрустацией и позолотой", или китайский экскаватор.
Охохо, это ты про cmake?))
Щмейк скорее ржавая тупая лопата с подгнившей ручкой.
Но зато ею может пользоваться любой выпускник трех классов церковно-приходской школы.
Возможно именно поэтому он так популярен в опенсорсе.
> Щмейк скорее ржавая тупая лопата с подгнившей ручкой.А вон то - беззубый экскаватор без гидролиний, их придется где-то надыбать и прикрутить самому. Иначе вообще будешь копать чем под руку попадется.
Для рытья траншей экскаватор. Для посадки картошки лопата.
Титановая лопата - это мечта! Легкая, прочная, не ржавеет, вечная.
Хрупкая только - медный пруток не перерубишь.
Помню, пилил в детстве кусок титана ножовкой по металлу и пытался молотком его согнуть.
В Китае так то миллиард человек живёт. И жильё для них строят как раз те экскаваторы.
Землянки что ли?
Дом никогда не стоил, что ли? Без фундамента его первым торнадо унесёт в страну Оз.
В теперешнем Китае "землянки" - это что то-с-чем-то, о такой "землянке" ты можешь только мечтать, лаовэй :)
> В теперешнем Китае "землянки" - это что то-с-чем-то, о такой "землянке" ты
> можешь только мечтать, лаовэй :)Помню я как их там на локдаун заперли и они за продукты чуть не рубались друг с другом в своем человейнике, ибо даже в магазин не выпускают.
...тем временем была прекрасная весна, и я гонял на велике по лесу, подальше от всего этого счастья, а заодно и завирусованых двуногих. Имея наглость сомневаться что сидеть взаперти в человейнике с правилами больше всего похожими на концлагерь - и правда "круто" и "офигенно". На велике по лесу гонять прикольнее чем за сумку с продуктами рубиться, извините.
Мечтать о таком счастье? Солнечным днем да на качествеенном горном велике по пересеченке в лесу со свежим воздухом без вирусов ...цать километров заложить - больше похоже на счастье было.
Владение при покупке у них в 70 лет от строительства. Потом у тебя квартиру могут отобрать (ну либо ты можешь доплатить и переехать).
Не понял, как китайцы могут отобрать у меня квартиру, и зачем мне доплачивать и переезжать в Китай.
Если работаете в команде то лучше cmake,
так как его много кто знает, и есть поддержка практически всего что нужно.Если насрать на тех кто будет этот проект дальше поддерживать то лучше meson,
а еще лучше свою систему сборки написать, чтобы точно никто кроме вас не смог в этом разобраться.
Ну, это только для содомитов.
Ты хотел сказать "Если работаете в команде и ненавидите этих #####! То лучше взять cmake - пусть они мучаются! и те кто после них придет пусть тоже мучаются!" ?Сейчас предлагать использовать в новом проекте анахронизм, просто потому что 'его много кто знает' маскимально глупо. Современный разработчик должем мочь освоить новый инструмент.
Скидки можно давать только дидам которые на С99 до сих пор пограммируют.
> Современный разработчик должем мочь освоить новый инструмент.А потом сразу же ещё один. И ещё один. И ещё. И ещё.
Нефиг время тратить на написание своего кода. Надо современные инструменты осваивать. Один за другим. За каждым новым - следующий, ещё более новый.
Если новый инструмент можно освоить, напр за неделю, а потом экономить время и вместо пердоллинга писать код - то отличное решение.
Более того даже существующий инструмент может развиваться - добавляют новые функции и тд.
(это конечно не по цмейк)
>Если новый инструмент можно освоить, напр за неделю, а потом экономить время и ...ЕСЛИ.
Хуже цмаке быть сложно. Сабж активно набрал популярность, это показательно. Будь всё хорошо, не бежали бы.
> Хуже цмаке быть сложно. Сабж активно набрал популярность, это показательно.
> Будь всё хорошо, не бежали бы.Ну-ка расскажи, а кто это с cmake на эту штуку так уж перешел? Переходят обычно покусаные гномом и редхатом, при том с автотулсов. И там еще понятно почему - время configure у этой байды совсем неприличное. Ибо за годы отросло немеряно.
> Сабж активно набрал популярность, это показательно. Будь всё хорошо, не бежали бы.Так бегут-то не с CMake, а с Autotools.
jam
meson проще, cmake фичастей. Выбирай, что больше нравится. meson может прозрачно использовать cmake для сборки подпроектов и разрешения зависимостей.
Однозначно cmake. У него тулкит богаче. Как ЯП оба говно. CMake говно потому что это в первую очередь шаблонизатор строк, а не ЯП, там даже типов нет, а сделать что-либо - это боль. Meson как ЯП говно потому, что требует питон, но они начали городить свой питоноподобный ЯП вместо использования питона. Чистый NIH-синдром.
Зачем в системе сборки яп полный по Тьюрингу? Там максимум условия нужны.
Вы видимо софт не собирали. А я - собирал. На CMake. С анализом системы, где сборка производится, генерацией SDK для Clang из обрывков SDK для Visual Studio и генерацией скриптов для NSIS; То ещё удовольствие. На питоне это быдо бы гораздо удобнее делать - у питона есть нормальный ЯП, пакетный менеджер и куча библиотек: парсеры C++, генераторы C++ из AST, нормальные регулярки, нормальный HTTP, нормальные библиотеки работы с бинарными форматами, нормальные библиотеки для работы с реестром, нормальный интерфейс к git...
Авторы cmake вычисляют зависимости исключительно в меру своего понимания где и что смотреть. Отстроиться от этого нельзя, только обмануть (если получится). Один из результатов этого --- они пялятся на то, что стоит в сборочной системе при кросс-сборке. Со всеми вытекающими из этого...
Есть и другие "ньюансы", много. Объёмы же современного cmake поражают воображение...
>исключительно в меру своего понимания где и что смотреть1. это понимание у них работает, и хорошо работает. Как и понимание специфики конкретных зависисмостей с наличием специфичных настроек.
2. cmake сама является де-факто стандартом предоставления инфы о зависимостях. если либа собирается с cmake+cpack правильно, то и нужный дистроспецифичный конфиг генерится.
3. они это делают, в отличие от остальных, которые вообще на всё забили.
4. даже если нет мшдуля для разыскивания нужной зависимости в системе в стандартной поставке, обычно можно стащить нужный модуль с чьего-либо гитхаба.
Сейчас открою страшную тайну: можешь всю свою сложную логику вынести в питонячий скрипт и дёргать её из cmake, или из любой другой системы сборки. Всю дичь, которую описываешь, система сборки делать не должна. Задача сборки построить конвейер по твоим вводным и по возможности в декларативном виде, а не разбирать c++ в AST и всасысать в себя кучу императивного кода с хрен пойми чем.
>Сейчас открою страшную тайнуможно конечно и так.
но даже в make встроили интерпритатор guile.
Это говорит о том что все как-то стараються сделать сборочную систему максимально полной (фичастой) , что б как раз то и не приходилось задействовать сторонние тулзы.
... и написать свою систему сборки на питоне. Гениальная идея! Тебе премию Тьюринга ещё за неё не дали?
> Meson как ЯП говно потому, что требует питон, но они начали городить свой питоноподобный ЯП вместо использования питона. Чистый NIH-синдром.Есть реализация месона не на питоне.
>Есть реализация месона не на питоне.Meson если и брать - то исключительно ради питона. Без питона мезон не нужен. И всё тут.
> Meson как ЯП говно потому, что требует питон,
> но они начали городить свой питоноподобный ЯПТо есть как ни крути они не правы?
Нет. Проблема в том, что Meson зависит от питона, но скрипты для него не есть питон. Обычно для сборки питон не должен требоваться. Я бы предпочёл его не держать в докер-образе для CI - места много жрёт. И из-за альтернативной одарённости разрабов питона они семёрку дропнули. Но мезон требует питон, при этом не имеет нормального ЯПи не имеет тулкита.CMake - питона не требует, тоже не имеет нормального ЯП, имеет обширный тулкит. Тулкит глючный и кастрированный и неюзабельный, но он есть.
Выбор очевиден - CMake.
Если бы была замена:
- со встроенным тулкитом, как у CMake, со значит. частью на C++ внутри
- с самой минимальной и легковесной реализацией питона в качестве ЯП. желательно - в зависимостях, а не инлайном, но чтобы любой установленный в системе хавала, и чтобы при желании можно было в папку кастрированную DLL кинуть - и заработало. минимум зависимостей даже от стандартной библиотеки питона.
Оба убогие. Сейчас нет нормальных публичных систем сборок, есть только варианты лучше autotools
Зачётный троллинг. Даже я знаю, что при использовании GTK будет проще одно, а с Qt - другое.
>Что лучше - мизон или симэйк?Обычный gnu make.
До первого пробела в имени файла.
Autotools
CARGO
Вшивый - о бане.
Оба так себе, но всё остальное ещё хуже.
CMake тянет кучу зависимостей чтобы собратся на голой системе, некоторые из зависимостей собираются с помощью Meson, так что забавно выходит.Meson - питонообразное поделие, кажется тянущее за собой питон со всеми вытекающими.
Если месон ещё немного прирастёт зависимостями то получится депенсити луп.
У месона меньше крутилок и он больше полагается на всякие дефолты в сторонних утилитах, так что если pkgconf убогий где то чудит то обойти это из мезона будет сложнее чем в CMake.У CMake обычно портянки больше и их сложнее читать в силу более громоздкого синтаксиса, тот endif() как пример.
Но возможно просто Meson не используется в сложных проектах.
> В методы проверки компилятора compiler.compiles(), compiler.links() и compiler.run() добавлена опция "werror: true", при которой предупреждения компилятора трактуются как ошибки (можно использовать для проверки, что код собирается без предупреждений).А в автотулз для этого ничего делать не надо. Просто установить переменную окружения CFLAGS.
CCPFLAGS или CXXFLAGS, пойди угадай что сегодня. Которая из них проыеряла работоспособность компилятора? Автотулс был удобен тем, что тебе не пихали вендорлок, как с месоном (привет гтк с его неотключаемыми в месоне бэкдорами).
> Которая из них проыеряла работоспособность компилятора?CPPFLAGS - флаги препроцессора, CXXFLAGS - флаги компилятора плюсов. Давайте поможем найти жулику^Wэксперту опеннета флаг для компилятора?
> CPPFLAGS - флаги препроцессора, CXXFLAGS - флаги компилятора плюсов. Давайте поможем найти
> жулику^Wэксперту опеннета флаг для компилятора?Так почему их смешивают постоянно, вместо использования по назначению? Кроме того, это не ответ на вопрос. Я вот часто сталкиваюсь с тем, что линкер обламывается на дефолтных параметрах. Это можно считать неработоспособностью компилятора тоже. А то потом тот же Хромиум на 10 часу компиляции внезапно обламывается.
В 10-м сообщении ведь есть ответ на вопрос. Потому что эксперты не знают, что cpp это не "си плюс плюс", а "си пре процессор".
Но не отвечает на вопрос, что переопределять. Подсказка, помимо этих есть ещё минимум 10 других (и это только известные мне).
Повторюсь - отвечает.
Нет, не отвечает.
Кому-то и при виде термина "фазы трансляции" приходиться лезть в поисковик.
Всегда думал что с++ это "С + старые костыли + новые костыли"
а вот оно как (°ロ°)
с++ это выражение постинкремент, т.е. результатом его вычисления окажется значение с до увеличения на 1.
Однако плюсы позволяют переопределить operаtor++() и там написать много странностей.
"Нет такой традиции" (C).cpp используется и для C++ и для препроцессора (для второго, кстати, сильно реже).
Угу, так всегда и было. А потом Страуструп написал свой препроцессор Cfront.
Примерно так выглядит дефолтное правило make для компиляции C++ сорцов:
COMPILE.cc = ${CXX} ${CXXFLAGS} ${CPPFLAGS}.cc.o:
${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}На расширения особо смотреть не надо, допускается и cc, и cpp, и cxx. В конечном итоге будет одна команда с набором флагов, и не имеет значения из каких переменных она была составлена.
Автотулзы - это хтонь и только за их упоминание в положительном ключе надо ставить на учет в ПНД.
Однако в отличие от сабжа оно умеет make-файлы генерить, а не рассказывает что это расово неверно. И поддерживает в цать раз больше разных платформ. А сабж кроме винды, пары линуксов и может макоси если повезет, с полутора компилерами, нихрена и не умеет.При том автотулсовый configure по минимуму пошлет на всем чем угодно с posix shell. Даже на vxworks каком. А эта шляпа там вообще не запустится.
> А сабж кроме винды, пары линуксов и может макоси если повезет, с полутора компилерами, нихрена и не умеет.Так в мире других ОС и компиляторов больше не существует для >99% софта. И настолько кроссплатформенный софт давно уже массово не пишут и твои эти 'в цать раз больше' платформ мало кто успел потрогать за жизнь. Формально можешь завернуть сборку в autotools и сказать что теперь у тебя ПО доступно для всего, но по факту то оно будет работать только там, где ты лично его смог отладить.
Ты ещё забыл, что просто для сборки проекта autotools не нужны, достаточно баша.
Всмысле что если проект использует autotools и сгенерированным configure , то для сборки нужен только баш
>Всмысле что ... нужен только башвсмысле нужен баш, кореутилс, ну и мейк. ну может еще перл, а так да, ваще ничего не надо
А "можно использовать для проверки, что код собирается без предупреждений" делается тривиальным вызовом grep, или как-то ещё проще?
Кажись, дошло. Они флаг к компилятору устаналивают, а не разбирают вывод.
Не понял как программа на python работает быстрее программы на плюсах?
> Не понял как программа на python работает быстрее программы на плюсах?Основной тормоз, это сами компиляторы.
А издержки управляющей программы пренебрежимо малы по сравнению с этим.
Но если компиляторы одни, а издержки <E, то каким образом оно быстрее
Логика круче у meson значит.
Учи временная сложность алгоритма.
Никак нет. Можно написать так, что компиллятор не развернет в оптимальные инструкции. Особенно на плюсах.
>Не понял как программа на python работает быстрее программы на плюсах?а я не понял в связи с чем у тебя возник этот вопрос?
можно цитату из новости?
Более лёгкий для разбора синтаксис (соответственно, более простой анализатор), более простой генеротор кода сборки (изначально под ninja заточенный), более простая логика разрешения зависимостей (pkg-config-ом/компилятором).Так что выбор языка тут играет не так сильно, как логика работы.
> Не понял как программа на python работает быстрее программы на плюсах?Вообще есть и вариант этого на сях - muon называется.
Чем лучше CMake?
все что угодно лучше чем цмейк
чего только стоит отвратительный синтаксис вида
set(x, "value_1;value_2;value_3")
Питонячий вариант ['value_1', 'value_2', ''value_3'] не лучше, а в CMake можно сделать просто как (... value_1 value_2 value_3). И тут же проблема не в синтаксисе, а что CMake вариант резервирует часть символов и кучу слов как кейворды из-за чего их нельзя использовать где-либо в значениях. Но, правда, на практике такие коллизии почти не встречаются.
да, интересно, можно на сабже делать embedded проект с несколькими кроссплатформенными таргетами, чтобы у каждого свой тулчейн? Если кто подскажет по делу, викину cmake на помойку
Для cmake есть Conan
А в meson три способа указать внешнюю зависимость, скачать и установить.
Зачем вам этот Conan?
Automake к датам файлов докапывается: сбросил дату у файлов, чтобы отследить что установилось, а он отказываеься собирать. Meson не жалуется и не останавливается.
Старый добрый premake никогда не подводил. Можно добавлять генераторы без перекомпиляции. Можно отключать генераторы которые не поддерживаешь. Короче сказка.
На гитхабе что-то только беты. 4.4-beta уже 12 лет. 5.0-beta.
Переписать на С собираеться автор или также помрет как что-то там на Perl-е написанное...
muonХоть и не автор переписал. Но даже в стабильном Дебиане уже есть:
> muon is an implementation of the Meson build system in c99 with minimal dependencies.
https://packages.debian.org/bookworm/muon-meson
https://sr.ht/~lattis/muon/
> Переписать на С собираеться автор или также помрет как что-то там на
> Perl-е написанное...Хрен знает, но авторы muon именно это и сделали. Вообще не спрашивая никого - просто взяли и запилили парсер этого же яп на сях. Потому что могут.
Если что пакет в дебиан-убунтуобразных называется muon-meson. Самое приятное что с питонятиной может случиться это ее переписывание =)