The OpenNET Project / Index page

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

Выпуск сборочной системы Meson 1.0

24.12.2022 09:15

Опубликован релиз сборочной системы Meson 1.0.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.

Ключевой целью развития Meson является обеспечение высокой скорости сборочного процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja, но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).

Поддерживается кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Основные новшества Meson 1.0:

  • Объявлен стабильным модуль для сборки проектов на языке Rust. Данный модуль используется в проекте Mesa для сборки компонентов, написанных на Rust.
  • В параметре prefix, поддерживаемом в большинстве функций проверки компилятора, реализована возможность обработки массивов помимо строк. Например, теперь можно указывать:
    
       cc.check_header('GL/wglew.h', prefix : ['#include <windows.h>', '#include <GL/glew.h>'])
    
  • Добавлен новый аргумент "--workdir", позволяющий переопределить рабочий каталог. Например, для использования текущего каталога вместо рабочего можно запустить:
    
       meson devenv -C builddir --workdir . 
    
  • Предложены новые операторы "in" и "not in" для определения вхождения в строку подстроки по аналогии с ранее доступной проверкой вхождения элемента в массив или словарь. Например:
    
       fs = import('fs')
       if 'something' in fs.read('somefile')
         # True
       endif
    
  • Добавлена опция "warning-level=everything", включающая вывод всех имеющихся предупреждений компилятора (в clang и MSVC использует -Weverything и /Wall, а в GCC раздельно включаются предупреждения, примерно соответствующие режиму -Weverything в clang).
  • В методе rust.bindgen реализована возможность обработки аргумента "dependencies" для передачи путей к зависимостям, которые должны быть обработаны компилятором.
  • Объявлена устаревшей функция java.generate_native_headers, которая переименована в java.native_headers для соответствия общему стилю наименования функций, принятому в Meson.


  1. Главная ссылка к новости (https://github.com/mesonbuild/...)
  2. OpenNews: Выпуск сборочной системы Meson 0.58. Проект по созданию реализации Meson на языке Си
  3. OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
  4. OpenNews: Релиз системы сборки CMake 3.23
  5. OpenNews: Проект AlmaLinux представил новую сборочную систему ALBS
  6. OpenNews: Выпуск системы сборки GNU Make 4.4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58382-meson
Ключевые слова: meson, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (96) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:30, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Опять?
     
  • 1.2, Аноним (2), 09:34, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Побежал свои скрипты переписывать срочно! И всем советую!
     
     
  • 2.3, . (?), 09:56, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    На раст?
     
     
  • 3.7, Аноним (7), 10:46, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для безопастной работы с памятью сборочных скриптов.
     
     
  • 4.51, Аноним (-), 19:24, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учитывая что сборочный скрипт и так может выполнить любые команды в системе? :)
     
  • 3.26, Аноним (26), 14:18, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На Модула-2
     
     
  • 4.49, Аноним (-), 19:22, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тем временем, его уже переписали правильно...  https://git.sr.ht/~lattis/muon :)
     

  • 1.4, pashev.ru (?), 10:03, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).

    Automake:

    bin_PROGRAMS = open-axiom
    open_axiom_CPPFLAGS = -I$(srcdir)/src/include
    open_axiom_CPPFLAGS += -DOPENAXIOM_ROOT_DIRECTORY="\"$(libexecdir)\""
    open_axiom_SOURCES = \
    src/driver/main.cc \
    src/lib/cfuns-c.cxx \
    src/utils/command.cc

     
     
  • 2.47, минона (?), 18:37, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это хорошо, когда проект простой и его сборка укладывается в вызов канпелятора.

    А если надо кастомный генератор, пре- или пост-процессор вызвать?

     
     
  • 3.50, pashev.ru (?), 19:24, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Тогда мэйк и автотулзы вообще безальтернативны, лол.

    Попробуй шаг влево-вправо с этими симэйками, мезонами, дон.

     
  • 3.55, Аноним (-), 21:10, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так вообще лучше не делать - потом новые контрибуторы вас проклинают за это последними словами, очень сложно с такими проектами, гадать из какой там ... вон то вообще вылезает, и тем более как и где это менять.
     

  • 1.5, pashev.ru (?), 10:07, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А сборка проектов на Лиспе?

    Autotools — легко: http://git.pashev.ru/open-axiom/tree/Makefile.am?h=new-build

     
     
  • 2.9, Аноним (7), 10:49, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я-то подумал, что ты сборочную систему на Guile наваял.
     
  • 2.53, Аноним (53), 20:20, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А паше-вру хлебом не корми, дай своим локалхостом похвастаться.
     
     
  • 3.71, scriptkiddis (?), 12:57, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не завидуй, у тебя и такого ннт.
     
  • 2.73, Аноним (73), 20:46, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >А сборка проектов на Лиспе?

    Для этого уже есть asdf

    >Autotools

    Извращенцы

     

  • 1.6, Аноним (6), 10:40, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja

    Я правильно понимаю, что расширенный и дополнённый m4 с возможностью парсить грамматики и половиной AWK внутри может взять и заменить все эти meson, ninja, cmake и иже с ними?

     
     
  • 2.12, Аноним (12), 11:19, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    может. Вперед, берите и заменяйте
     
  • 2.18, anonimm (?), 12:54, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Сборочная система должна поддерживаться средами разработки, например, в части поиска нужных заголовочников. В этом смысле cmake почти незаменима. В частности, имеет поддержку в visual studio (не code).
    Хотя админам, которые только собирают, а сами ничего сложнее студенческой лабы не пишут, этого не понять.
     
     
  • 3.52, Аноним (-), 19:27, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сложнее студенческой лабы в студии очень уж сложно собирать. Одно дело в линуксе вкатить все потребные build deps за пару минут на автомате, пакетным менеджером, и другое - в винде плясать со всем этим.

    Ну вот например, для начала вы пойдете качать и ставить для вон той штуки питон. А потом и ниндзю заодно. И это вы еще собирать ничего не начали - только сборочное окружение поднимаете. А за время установки студии я так то пару программ посложнее лабы смогу написать, например.

     
     
  • 4.59, Аноним (59), 00:19, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как здорово что на opennet так много высокопрофессиональных программистов, которые могут за время установки IDE написать пару сложных программу.
    Жаль только что написанное они никому не показывают.
     
     
  • 5.61, Аноним (-), 00:38, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Как здорово что на opennet так много высокопрофессиональных программистов, которые могут
    > за время установки IDE написать пару сложных программу.

    Вьюжлстудия может ставиться буквально день. Скажет что версия дотнета не та и устроит эпопею с несколькими перезагрузками, перегенерацией ассемблей и чем еще. За день можно довольно много чего сделать.

    > Жаль только что написанное они никому не показывают.

    Как впрочем и "профессионалы" со студией.

     
  • 4.65, Rock (?), 05:27, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вам человек и говорит, что для отчаявшихся что-то сделать с помощью родной систе... большой текст свёрнут, показать
     
     
  • 5.88, Аноним (-), 14:07, 26/12/2022 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.90, Аноним (-), 14:31, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ох, спасибо, конечно, но для меня это классический "too little and too late": я на линукс ушел и от инструментов MS избавился, мне уже не актуально. Пусть этим счастьем кто-нибудь другой наслаждается. Как и установкой внесистемных rsync с ssh'ем, с моей стороны такая активность софта крайне не приветствуется.

    И я не понимаю что значит "конфликтовать с системным ssh". У меня просто нет таких проблем. Если это именно программа, она там вообще на самом деле либу ssh или rsync на самом деле так то хотела, а не внешнюю программу, если прогер это не понял тем хуже для него. И прописать поиск либы в cmake и правда несложно, а дальше это проблемы юзера и системы где они эту либу достанут (в пакетном менеджере если это линукс, разумеется). В винде разумеется установка доп либ канительнее.

     
  • 2.20, anonimm (?), 12:57, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сборочная система должна поддерживаться средами разработки, например, в части поиска нужных заголовочников. В этом смысле cmake почти незаменима. В частности, имеет поддержку в visual studio (не code).
    Хотя админам, которые только собирают, а сами ничего сложнее студенческой лабы не пишут, этого не понять.
     
  • 2.21, topin89 (ok), 13:14, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    О господи. Не надо. Это конечно был хороший инструмент в 1977, но сейчас-то зачем? Древние проги поддерживать разве что, для которых переход на meson/cmake/scons и другие более вменяемые вещи попроще будет.

    Каждый раз, когда я открываю очередной .ac файл, который генерирует шелл-скрипт, который генерирует Makefile, который наконец собирает программу, хочется выть. Даже не из-за лишнего промежуточного шага. Разобраться в этой мешанине сложнее, чем даже в CMake, а он тоже не сахар.

    Честное слово, даже если бы кто-то написал мелкую служебную программу на С++, которая компилируется в одну строку и потом сама вызывает компилятор в нужной последовательности, это уже было бы лучше, чем M4

     
  • 2.25, Аноним (26), 14:18, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я тебе официально запрещаю это делать.
     
  • 2.39, Аноним (39), 16:37, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно, если дополнить макропроцессор общего назначения половиной awt и возможностью парсить, то он знаменит не только костыли meson, ninja, make, но и вообще всё.
     
  • 2.40, Аноним (39), 16:38, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Странно что вы со сих пор это не сделали
     
  • 2.60, fuggy (ok), 00:32, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы собрать Meson нужно Ninja. Чтобы собрать Ninja нужно что? make? Дальше что? Чтобы собрать make нужно GCC, чтобы собрать GCC нужно autotools, нужно clang, нужно cmake и тд.
    Яйцо в зайце, заяц в утке, игла в яйце. Чтобы собрать систему сборки, нужно собрать систему сборки.
     

  • 1.8, rezzet (?), 10:46, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Нет билять, только Cmake стал более менее стандартом, начинается зоопарк, закопайте это как можно быстрее. Cmake по синтаксису полное говно, кривой косой, но похрену на это все, на скорость, унификация на порядок важнее. Пусть будет самое кривое решение что может быть, но одинаковое у всех и единый репозиторий библиотек. или два.
     
     
  • 2.10, Аноним (7), 10:51, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет уж, кривое ненадо. Надо человекочитаемое.
     
  • 2.11, Аноним (-), 11:03, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +10 +/
    >самое кривое решение что может быть, но одинаковое у всех и единый репозиторий библиотек

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

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

     
     
  • 3.42, Аноним (39), 16:45, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Просто современные программисты не способны освоить простые понятные и надёжные средства из семидесятых. По этому вместо того чтобы дополнить m4, они изобретают очередной бесполезную сборочную систему типа cmake.
     
  • 2.15, Zenitur (ok), 12:42, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > только Cmake стал более менее стандартом, начинается зоопарк

    #16527
    zhus> У меня есть смутное подозрение, что как только технология отлажена, стабилизировалась, перестает вызывать проблемы и вопросы у пользователей, так сразу она объявляется устаревшей, неразвивающейся и ненужной. И стройные ряды идут героически выкорчевывать то, что не так давно не менее героически взрастили.

     
     
  • 3.22, Аноним (22), 13:38, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Просто с ростом числа применений становится очевидно, что технология хлам и никуда не годится, а значит, пора бы сделать новое и лучше, устранив давно висевший технический долг. Пользователи же в общем случае будут жрать любой кал и просить добавки -- не показатель. В случае с cmake, он взлетел только потому, что всё остальное для кроссплатформенной сборки было ещё хуже и неудобнее, но писали его явно содомиты (в плохом смысле слова). А то, что устаревший хлам впадает в запустение -- вполне логично. Прошлые участники уже разочаровались и ушли в монахи, а новые пойдут туда, где лучше. Ситуация, когда все силы сообщества расходуются на несколько копирующих друг друга проектов, может быть намного хуже, чем когда все заинтересованы в доработке лучшего решения.
     
  • 2.41, Самый умный из вас (?), 16:43, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что угодно лучше, чем смаке, даже баш-портянки
     

  • 1.13, Аноним (13), 11:42, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >After exactly 10 years, Meson 1.0.0 is out
    >The first ever commit to the Meson repository was made 10 years ago to this day. To celebrate we have just released the long-awaited version 1.0.

    Красота-то какая)))

     
     
  • 2.87, Michael Shigorin (ok), 13:20, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Красота-то какая)))

    В честь
    Десятилетнего юбилея
    Нашего современного проекта
    Объявляем выпуск круглой версии, ура!

     

  • 1.14, Zenitur (ok), 12:34, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Dependencies
    > Python (version 3.7 or newer)

    Ненужно

     
     
  • 2.56, Аноним (-), 21:12, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    От таких muon помогает.
     

  • 1.16, dev (??), 12:47, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Он поддерживает сборку под Андроид и Айос?
     
  • 1.17, Анна Нист (?), 12:48, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    это всё Meson'ы
     
  • 1.19, BrainFucker (ok), 12:57, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Правила сборки задаются на упрощённом предметно-ориентированном языке

    Зачем, могли бы просто использовать питон, один фиг оно на питоне

     
     
  • 2.23, Аноним (22), 14:00, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Питон слишком сложный для типичного пользователя сборочных систем, ну и потом, ограниченная функциональность это нормально, да и нет привязки к яп.
     
     
  • 3.24, BrainFucker (ok), 14:03, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Правила сборки задаются на упрощённом предметно-ориентированном языке
    > да и нет привязки к яп.

    Ну-ну...

     
     
  • 4.27, Аноним (22), 14:44, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Язык описания не язык программирования.
     
     
  • 5.28, BrainFucker (ok), 14:45, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А декларативное программирование не программирование.
     
     
  • 6.30, Аноним (22), 15:03, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А декларативное программирование не программирование.

    Ты всё правильно понял. Я всё ещё считаю, что пролог не ЯП в полном смысле этого слова. Не более, чем sql.

     
     
  • 7.32, Аноним (26), 15:07, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Программирую на HTML что я делаю не так?
     
     
  • 8.64, Аноним (-), 01:09, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Перепутал верстку и программирование, мелочи какие Вот конкретно HTML вообще не... текст свёрнут, показать
     
  • 7.33, BrainFucker (ok), 15:24, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На самом деле я не вижу проблем называть какие-то узкоспециализированные языки программирования языками программирования, даже если на них нельзя напрограммировать всё что взбредёт в голову. А такие есть не только декларативные.
     
  • 2.43, Аноним (12), 16:49, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    лично тебе разрешаю использовать клон meson на сях: https://github.com/annacrombie/muon
     
     
  • 3.44, BrainFucker (ok), 17:45, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  клон meson на сях

    Ну вот это точно фиг знает зачем нужно когда есть Cmake.

     
     
  • 4.82, Аноним (-), 01:44, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле зачем? Билдить проекты с этой билдсистемой без всяких питонов-электронов и тем более заморочек на тему правильности версий оного.
     
  • 2.81, Аноним (-), 01:43, 26/12/2022 Скрыто ботом-модератором     [к модератору]
  • +/
     

     ....ответы скрыты (12)

  • 1.29, Аноним (29), 14:48, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Да что вам все этот питон уперсято? Невозможноже читать его как только код больше страници.
     
     
  • 2.31, Аноним (26), 15:06, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так ты не читай ты пиши.
     
  • 2.34, BrainFucker (ok), 15:27, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каким образом фигурные скобки решают эту проблему, если когда блок кода больше страницы всё равно вторую фигурную скобку не видно на одном экране?
     
  • 2.79, Вы забыли заполнить поле Name (?), 22:36, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Да что вам все этот питон уперсято? Невозможноже читать его как только
    > код больше страници.

    Отступ в 2 пробела не делай или линейку прикладывай. А вообще если фигурные скобки не учитывать, то в с-подобном языке у тебя точно такое же форматирование кода. Так что не придумывай.

     

  • 1.35, Аноним (35), 15:35, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >в проекте Mesa

    Так вот для чьих нужд эта система сборки создавалась!

     
     
  • 2.62, Аноним (-), 01:00, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >>в проекте Mesa
    > Так вот для чьих нужд эта система сборки создавалась!

    Да это гномеры, мерзкие типки превратившие нормальный тулкит в жуткое тормозное и непотребное месиво которым пользоваться невозможно.

     
     
  • 3.68, Аноним (68), 11:06, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А это тут причём?
     
     
  • 4.78, Аноним (-), 22:04, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А это тут причём?

    Да это примерно та же клика и их дружбаны редгадовские. Было бы круто если б IBM вышибли весь этот мерзкий хайпожорский сброд с треском.

     

  • 1.36, pashev.ru (?), 15:58, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Предложены новые операторы "in" и "not in" для определения вхождения в строку подстроки

    Между прочим, это встроено в unix shell 😂

     
     
  • 2.37, Аноним (39), 16:27, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему бы просто не писать сборочные скрипты на Unix shell?
    Настоящему программисту способному писать на любом соответствующем Тьюрингу языке, эти cmake, mesone, make, Gradle и прочие, не нужны
     
     
  • 3.38, pashev.ru (?), 16:33, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да пожалуйста:

    AC_MSG_CHECKING([for Lisp flavor])
    oa_lisp_impl_type='echo '(lisp-implementation-type)' | $OA_LISP 2>&AS_MESSAGE_LOG_FD'
    AS_CASE([$oa_lisp_impl_type],
      [*"SBCL"*], [oa_lisp_flavor="sbcl"],
      [*"GNU Common Lisp"*], [oa_lisp_flavor="gcl"],
      [*"Embeddable Common-Lisp"*], [oa_lisp_flavor="ecl"],
      [*"CLISP"*], [oa_lisp_flavor="clisp"],
      [*"Clozure Common Lisp"*], [oa_lisp_flavor="clozure"],
      [AC_MSG_RESULT([unknown])
       AC_MSG_ERROR([unsupported Lisp])])
    AC_MSG_RESULT([$oa_lisp_flavor])

     
     
  • 4.46, Аноним (-), 18:10, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это m4 а не shell.
     
     
  • 5.48, pashev.ru (?), 19:20, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А Вим не текстовый редактор, ага.
     
  • 3.57, Аноним (57), 22:02, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Unix shell?
    Это трудночитаемые скрипты напоминающие Perl?
    Спасибо, но не надо.
    Лучше уж на PHP.
     
  • 3.84, Michael Shigorin (ok), 13:13, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему бы просто не писать сборочные скрипты на Unix shell?

    Потому что сперва придётся написать на нём движок зависимостей.

    Осильте уже http://www.gnu.org/software/make/manual/make.html -- там не так уж далеко от корки до корки, местами даже с юморком: "Backslashes that are not in danger of quoting ‘%’ characters go unmolested" ;-)

    Заодно чуть познакомитесь с ФП, а это и на шелле бывает полезно понимать.

     

  • 1.45, Аноним (45), 17:55, 24/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Кашерный мэйк нужен был только для одного:

    цель: зависимости
      что нужно сделать, чтобы из зависимостей сделать цель

    Все остальное от лукавого.

     
     
  • 2.54, Аноним (53), 20:27, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А теперь собери с этой парадигмой что-то сложнее hello world. Что, запыхался? А мы даже не начали динамические зависимости и генераторы кода разбирать.
     
     
  • 3.58, Аноним (45), 23:03, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А не надо просто из исходников собирать целую операционную систему типа Андроида за раз. Собираете помодульно и будет вам счастье.
     
     
  • 4.69, Аноним (68), 11:08, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    так Meson/Cmake/m4/прочее и нужно, чтобы автоматизировать помодульную сборку
     
  • 3.63, Аноним (-), 01:01, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Генераторы кода вообще такая штука которой лучше не пользоваться в общем случае. Во избежание подыхания проекта, в котором никто кроме оригинального автора не разобрался, видите ли. Потому что желающих раскуривать такой полет мысли потом может элементарно не найтись.

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

     
  • 3.85, Michael Shigorin (ok), 13:15, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А теперь собери с этой парадигмой что-то сложнее hello world. Что, запыхался?
    > А мы даже не начали динамические зависимости и генераторы кода разбирать.

    Вы не начинали, а я make приспособил для mkimage-profiles, скажем.  Понятно, что настоящий программист изобразил бы DSL (и потом остаток жизни его развивал, поддерживал и документировал) -- как и php-образность в плане близости кода и содержимого.  Но это мы оставим разбирать уже потомкам :]

     

  • 1.67, Аноним (67), 09:35, 25/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > для сборки .. systemd, GStreamer, Wayland, GNOME и GTK

    Всё ясно, закрываю вкладку...

     
  • 1.70, kuzulis (?), 11:51, 25/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мыши плакали, кололись, но продолжали есть кактус (c)

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

    Питоняка, генерирующая мейкфайлы... И чем оно лучше той же смаки. Теже сорта сами знаете чего, только в другом фантике.

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

     
     
  • 2.72, Вы забыли заполнить поле Name (?), 19:39, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > просто взять Qbs

    Когда дело касается сборки, просто не бывает, сынок. И зачем ты предлагаешь нам qtшную систему сборки?

    > Питоняка, генерирующая мейкфайлы... И чем оно лучше той же смаки

    Второй уже оброс легаси поуши так, что появился modern cmake. И какая тебе разница поставить питон или autotools?

    > Треш и угар, чтобы собрать приложение, помимо конпелятора, нужно поставить тонны всякой дичи и превратить систему в помойку

    Только проснулся? Это последние лет 20 происходит

     
     
  • 3.80, Аноним (22), 01:08, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты явно проспал последние лет так 90, если считаешь, это происходит всего 20 лет.
     
     
  • 4.92, Вы забыли заполнить поле Name (?), 17:01, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты явно проспал последние лет так 90, если считаешь, это происходит всего
    > 20 лет.

    Дед, опять таблетки забыл принять? Напомню тебе, что они у тебя под перфокартами лежат.

     
  • 3.83, kuzulis (?), 12:07, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда дело касается сборки, просто не бывает, сынок. И зачем ты предлагаешь
    > нам qtшную систему сборки?

    А чем, тебе, дядя, не угодило то что ее кутешники разрабатывали?

    > Второй уже оброс легаси поуши так, что появился modern cmake.

    Угу, угу, такой он модерн, что прям глаза вытекают глядя на это.

    > И какая тебе разница поставить питон или autotools?

    Ненене, ты не утрируй, надо поставить: питон + нинзя, или автотулся + маке. А если дело на оффтопике - то там вообще заморачиваться с Msys2 и прочим...

    UPD: И у нинзи - о божечки, ограничение на 260 символов для имен/путей к файлам. И если у тебя, дядя, ПОДЛИННЕЕ - то это твои проблемы (размер - имеет значение).

    > Только проснулся? Это последние лет 20 происходит

    ИМХО, просто программисты - мягкотелые никчемные существа, безвольные тряпки - жрут то что им дают. ))
    Вот поэтому так ничего нового и хорошего не прижилось, удивительно даже как то, вот ну правда, без обид. ))

     
     
  • 4.93, Вы забыли заполнить поле Name (?), 17:05, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А чем, тебе, дядя, не угодило то что ее кутешники разрабатывали?

    Ты предлагаешь маргинальную поделку взамен. qtшники завтра бросят ее как qmake и что ты будешь делать?

     
     
  • 5.95, kuzulis (?), 17:51, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты предлагаешь маргинальную поделку взамен.

    А мезон и смаке - не маргинальные поделки?

    > qtшники завтра бросят ее как qmake и
    > что ты будешь делать?

    Да они бросили уже давно ее, и это хорошо (теперь пилится сообществом).

    А вот китваровцы/мезонщики (или кто там мезон конопатит?) бросят свои маргинальные поделки и что ТЫ будешь делать тогда?


     
  • 3.86, Michael Shigorin (ok), 13:17, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > И какая тебе разница поставить питон или autotools?

    Ему, может, и никакой.  А вот меня не слышавшие про бутстрап (который раскрутка, а не бегамайты этсамого) "современные разработчики" порой огорчают.

    Автокрап в этом плане на две головы лучше продуман со своей стадийностью.

     
     
  • 4.94, Вы забыли заполнить поле Name (?), 17:11, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> И какая тебе разница поставить питон или autotools?
    > Ему, может, и никакой.  А вот меня не слышавшие про бутстрап
    > (который раскрутка, а не бегамайты этсамого) "современные разработчики" порой огорчают.

    Собрать gcc => собрать autotools => запустить autotools.

    Собрать gcc => параллельно [собрать python, собрать ninja] => запустить meson.

    Разница только во времени сборки. Учитывая, что далее будет собираться нетривиальный софт - это минор.


     
     
  • 5.100, Аноним (-), 21:42, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Разница только во времени сборки.

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

    И кстати в многих программах, как минимум в релизах, configure уже сгенеренный лежит. Для его пуска достаточно хоть какого-то шелла. И все. А дальше оно уже там расскажет чего ему не хватает. Чем оно и круто.

     
  • 5.101, пох. (?), 22:22, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    autotools в отличие от модных современных молодежных недоделков НЕ НУЖНО запускать "чтобы собрать приложение" - это инструмент _разработчика_ того приложения.

    Чтобы просто собрать (или даже непросто, а поменяв что-то в исходнике) нормальный проект (не мусор с гитшлака) - нужен _только_ posix-совместимый шелл. Потому что запускается им готовый configure. Пересобирать его перед каждым запуском - не нужно, родной!

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

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

     
     
  • 6.102, Вы забыли заполнить поле Name (?), 00:25, 27/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >  нужен _только_ posix-совместимый шелл.

    И совместимый Make. То есть по факту разница в смене shell => python и make => ninja. Поэтому деды ворчат?

     
     
  • 7.104, пох. (?), 01:12, 27/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > И совместимый Make

    логично, это генератор мэйкфайлов.
    При этом gnu make имеет _ноль_ посторонних зависимостей (и да, готовый configure в релиз положить не забыли) и вот там-то autoconf использован по прямому назначению - он по сей день собирается и иногда работает даже на совсем не posix-совместимых платформах, причем для этого не надо ничего делать тебе самому - даже если авторы никогда и не собирались ту платформу специально поддерживать.

     
  • 4.97, Вы забыли заполнить поле Name (?), 18:54, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> И какая тебе разница поставить питон или autotools?
    > Ему, может, и никакой.  А вот меня не слышавшие про бутстрап
    > (который раскрутка, а не бегамайты этсамого) "современные разработчики" порой огорчают.
    > Автокрап в этом плане на две головы лучше продуман со своей стадийностью.

    Не забывай, что для autoconf нужно собрать perl

    $ apt-cache show autoconf | grep Depends
    Depends: perl (>> 5.005), m4 (>= 1.4.13), debianutils (>= 1.8)

     
  • 3.89, Аноним (-), 14:21, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Второй уже оброс легаси поуши так, что появился modern cmake. И какая
    > тебе разница поставить питон или autotools?

    Потом окажется что питоняка как обычно окажется какой-то не той версии, так что вот вам тут по...ся завернули на ровном месте. Или того хуже, окажется что и версия сабжа не та, и вот мелкий квест на 5 минут оказывается длинная эпопея. На третий день траха с билддепсами вам это надоест, вы поймаете просветление, просто скажете gcc src/*c -o program - оно счастливо соберется за 20 секунд и проблема отпадет естественным методом. С мезоном довольно часто работает как-то так, да. Зачем нужна такая автоматизация билдовки софта - вопрос номер два.

     
     
  • 4.91, Вы забыли заполнить поле Name (?), 16:59, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > просто скажете gcc src/*c -o program - оно счастливо соберется за 20 секунд и проблема отпадет естественным методом.

    Свой хеллоу ворлд под локалхост можешь собирать так, никто не спорит. В реальном мире есть зависимости, опции сборки и больше одной платформы (на некоторых из которых gcc не вариант).


     
     
  • 5.99, Аноним (-), 21:35, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Свой хеллоу ворлд под локалхост можешь собирать так, никто не спорит.

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

    > В реальном мире есть зависимости, опции сборки и больше одной платформы (на
    > некоторых из которых gcc не вариант).

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

    p.s. я так то поболее всяких хелловорлдов и не только под всякое разное билдую. Правда gcc там обычно все же есть, проприетарную пакость я не жалую.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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