LINUX.ORG.RU

Назовите хотя бы одну причину существования долбанного meson...

 , , , ,


0

6

Указываю новые CFLAGS, CXXFLAGS, запускаю meson setup --reconfigure с новым buildtype, запускаю ninja, И НИЧЕГО НЕ ПЕРЕСОБИРАЕТСЯ!!! Только линковка запускается повторно!
Для чего нужна билдсистема, которая не может отреагировать на изменение конфигурации? Чем это лучше мейкфайла или bash-скрипта? Чем это лучше autotools, который им заменяют в конце-то концов (другой синтаксис - субъективщина)? Что делал этот чёртов reconfigure, если не привёл к пересборке?

★★★★★

Оффтопик.

Я сейчас пробую Java, и там всё делается из Gradle. Причём, не нужно пердолиться с устаревшими пакетами из репозитория дистрибутива Линукс, потому что есть Gradle Wrapper, он качает нужную версию Gradle откуда надо.

А флаги компилятора менять… Так ВМ знает, как лучше :)

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

круто да, а вот если надо для дистрибутива опакетить и на билдере сеть отключена (практикуют такое да) пердолинг с явой радости не вызывает.

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

Ещë чуток дорихтовать и получится слакбилд :)

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

Терпеть не могу, когда софт перекачивает сам себя.
У gradle несомненно есть плюсы, например можно дописывать собственные модули, но контроллировать всё это довольно сложно. Это ощущается как чёрный ящик

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

Не знаю, как там с meson (он на питоне же?), а если сравнивать cmake с gradle, то пердолинга с cmake по-любому больше. Как минимум потому что актуальную версию cmake надо собирать из исходников, а gradle уже доступен в собранном виде. Т.е. на один шаг меньше.

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

meson нескучной версии тоже придётся собирать. А вот в waf всё бандлится в проект и ничего ни качать ни собирать не нужно

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

если сравнивать cmake с gradle, то пердолинга с cmake по-любому больше. Как минимум потому что актуальную версию cmake надо собирать из исходников, а gradle уже доступен в собранном виде. Т.е. на один шаг меньше.

Тебе запрещают скачать бинарник с https://cmake.org/download? А если есть питон, то можно через pip install cmake поставить.

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

не нужно пердолиться с устаревшими пакетами из репозитория дистрибутива Линукс, потому что есть Gradle Wrapper, он качает нужную версию Gradle откуда надо.

А потом, при сборке другого проекта, понадобится другая версия gradle и другие плагины и опять ждём пока всё закачается. Папка .gradle распухает как печень алкоголика, зато не пердолимся со старыми пакетами.

u-235
()
Ответ на: комментарий от mittorn

Тут не уследишь. Мне вот интересно почему make до сих пор жив?

Может я ошибаюсь, но вот к примеру раньше я юзал sendmail и приходилось правила писать на m4.

Ну так уже давно postfix.

Я так понимаю что сборка это по сути последовательность команд в терминале, может просто генерить такой баш скрипт?

mx__ ★★★★★
()
Ответ на: комментарий от u-235

Это если папка, а если мамка пухнет, то норм.

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

задача системы сборки - собирать только обновившиеся файлы. make это может, bash - нет. Ещё make умеет распараллеливать задачи.
Конечно можно нагенерировать bash скрипт, который будет всё это делать, но он будет работать медленнее. Для генерированных файлов придумали ninja

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

В CMake и xmake такого нет.

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

Вы меня извините за то что встрял.

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

Про паралельный запуск не понял. Питон к примеру не паралелиться. Можно конечно распихать по ядрам но пространство там одно, есть еще асинхроность …

В баше есть пайп к примеру.

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

Зачем записывать время последнего запуска? make сравнивает время изменения цели и источника и запускает таску, если источник новее.
С распрараллеливанием никаких проблем нет - если есть несколько тасков, готовых к выполнению - то они могут быть запущены одновременно. Наверно это можно на скриптах скостылять, но зачем. Когда есть make?

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

Ну можно и так, все равно это по сути одно и тоже.

Просто всегда много разговоров про это, почему то.

Я так понимаю что люди пишут на ide и не особо паряться по поводу сборки.

mx__ ★★★★★
()
Ограничение на отправку комментариев: