The OpenNET Project / Index page

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

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

11.04.2023 12:26

Опубликован релиз сборочной системы Meson 1.1.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.1:

  • В declare_dependency() добавлен новый аргумент "objects:" для прикрепления объектов напрямую к исполняемым файлам в форме внутренних зависимостей, не требующих применения link_who.
  • В команду "meson devenv --dump" добавлена опциональная возможность указания файла для записи в него переменных окружения, вместо вывода в стандартный выходной поток.
  • Добавлены методы FeatureOption.enable_if и FeatureOption.disable_if для упрощения создания условных конструкций при подготовке к передаче параметров в функцию dependency().
    
       opt = get_option('feature').disable_if(not foo, error_message : 'Cannot enable feature when foo is not also enabled')
       dep = dependency('foo', required : opt)
    
  • Разрешена передача сгенерированных объектов в числе аргументов "objects:".
  • В функции project реализована поддержка установки файлов с информацией о лицензиях проекта.
  • При выполнении "sudo meson install" обеспечен сброс привилегий во время пересборки для целевых платформ.
  • В команде "meson install" предоставлена возможность указания отдельного обработчика для получения прав root (например, можно выбрать polkit, sudo, opendoas или $MESON_ROOT_CMD). При запуске "meson install" не в интерактивном режиме больше не производятся попытки повышения привилегий.
  • Добавлена поддержка чтения опций из файла meson.options вместо meson_options.txt.
  • Обеспечено перенаправления в stderr вывода информации о ходе интроспекции.
  • Добавлен новый бэкенд "none" (--backend=none) для создания проектов, имеющих только правила установки и не содержащих правил сборки.
  • Добавлена новая зависимость pybind11, обеспечивающая работу dependency('pybind11') с pkg-config и cmake без применения скрипта pybind11-config.
  • Разрешено использование опций "--reconfigure" и "--wipe" (meson setup --reconfigure builddir и meson setup --wipe builddir ) с пустым builddir.
  • В meson.add_install_script() добавлена поддержка ключевого слова dry_run, разрешающего запуск собственных установочных скриптов при вызове "meson install --dry-run".


  1. Главная ссылка к новости (https://github.com/mesonbuild/...)
  2. OpenNews: Выпуск сборочной системы Meson 1.0
  3. OpenNews: Сотрудник Red Hat представил сборочную систему Goals
  4. OpenNews: Android переходит на сборочную систему Bazel
  5. OpenNews: Выпуск сборочного инструментария Qbs 1.21 и начало тестирования Qt 6.3
  6. OpenNews: Проект AlmaLinux представил новую сборочную систему ALBS
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58948-meson
Ключевые слова: meson, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:10, 11/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Отличная система сборки. То, что он не тьюринг-полный, может считаться плюсом, т. к. в любом проекте будешь чувствовать себя как рыба в воде, как сыр в масле, как пиво в холодильнике, как кетчуп в макаронах, как тарелка вчерашнего супа в микроволновке.
     
     
  • 2.2, Аноним (2), 13:23, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как водка в пустыне?
     
  • 2.18, fi (ok), 20:42, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Поделитись как грамотно выпелить Meson из сборки glib2 !!!

     
     
  • 3.19, Аноним (-), 20:56, 11/04/2023 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.30, leap42 (ok), 06:03, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Делюсь, это оч просто: берешь autotools и пишешь кучу лапши, которая будет в 3 раза длиннее и в 10 раз сложнее и поддерживаешь это сам.
     
     
  • 4.45, fi (ok), 17:58, 16/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    думаешь сострил? а получилось тупо)))

    версия 2.58 вполне поддерживается и собиратся без meson-а. Так что закапываем питом ))))
    спасибо команде дебьяна !!!

     
     
  • 5.46, leap42 (ok), 04:15, 17/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > думаешь сострил? а получилось тупо)))
    > версия 2.58 вполне поддерживается и собиратся без meson-а. Так что закапываем питом
    > ))))
    > спасибо команде дебьяна !!!

    смешон тут тот, кто ни одного пакета для других не опакетил, а что-то там закапывает (для не самых умных: meson, а значит и python надо ставить только тому, кто собирает пакет, а не всем, кто его использует)

     
     
  • 6.47, fi (ok), 14:18, 18/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для особо "умных" - промазал, твой астрал тебя подвел, калиброва сбилась ))))))))))

    дистриб. Python-3.9 очень грязный - содержит много мусора, типа:
    ./Lib/distutils/command/wininst-14.0-amd64.exe
    ./Lib/distutils/command/wininst-9.0.exe
    ./Lib/distutils/command/wininst-14.0.exe
    ./Lib/distutils/command/wininst-6.0.exe
    ./Lib/distutils/command/wininst-7.1.exe
    ./Lib/distutils/command/wininst-8.0.exe
    ./Lib/distutils/command/wininst-9.0-amd64.exe
    ./Lib/distutils/command/wininst-10.0.exe
    ./Lib/distutils/command/wininst-10.0-amd64.exe
    прочее Г.

    Авторы свалили все в кучу - нате вам.

    легче его весь выпилить чем сертифицировать - надеюсь ты знаешь что это такое?

     

  • 1.3, rezzet (?), 13:38, 11/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Срочно закопать. Только только CMake стал более менее внятным стандартом для всех библиотек, начали появляться робкие проблески внятных пакетных менеджеров, нет снова пытаются развести зоопарк, мне все равно какие там офигительные возможности, как все лучше(хотя это отдельный большой вопрос лучше ли?), это не неважно, нужно единообразие, что бы либы подключались щелчком пальца, а не зоопарк генераторов билд систем.
     
     
  • 2.4, 1 (??), 13:46, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну если нужно однообразие goto Army или на Mac
     
  • 2.5, Анонимусс (?), 13:51, 11/04/2023 Скрыто ботом-модератором     [к модератору]
  • +4 +/
     
  • 2.6, макпыф (ok), 14:07, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Стандартом для большинства пакетов является autotools. CMake к счастью встречается редко, не припомню чего то важного на нем кроме LLVM и пары либ
     
     
  • 3.37, Michael Shigorin (ok), 20:55, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Последние лет пять-семь шмяк попадается по нарастающей, равно как и проблемы с ним (проблемы самого шмяка, проблемы с обходами этих проблем упорно жующими этот кактус и далее по стеку).

    Как-то даже немножко неожиданно оказалось, что по сравнению со всем вот этим автокрап -- прямо какой-то краповый берет.

     
     
  • 4.40, Аноним (40), 21:01, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https://i.imgur.com/JljfLwn.png
     
  • 4.41, rezzet (?), 21:15, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    проблемы это когда тебе нужна библиотека в проекте и надо ибаться неделю что бы собрать ее, хрен пойми как подключить все это счастье к хкоду, вижуал студии, андроид студии и еще хрен пойми куда, а сейчас берешь vcpkg добавляешь одну строчку в json файл и как правило нужная тебе либа уже у тебя в проекте под все платформы и все среды разработки. Так что я не знаю какие там у кого проблемы, Cmake - это решение проблем.
     
  • 2.8, Омоним (?), 14:30, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Щелчком пальца и CMake - вещи не особо совместимые, если мы говорим про разработку под несколько ОС.
     
     
  • 3.9, Серб (ok), 16:31, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда заходит речь о создании пакетов, очевидно, речь идет о полноценных ОС.

    А в таком случае cmake вполне справляется.

     
  • 2.15, name (??), 19:05, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ничего, что мезону 10 лет в обед?
     
  • 2.24, Аноним (24), 22:42, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >2 системы сборки:

    СРОЧНО ЗАКОПАТЬ распыление зоопарк всё пропало

    >3 операционных системы:

    Проклятая монополия кровавый микрософт душит рынок хнык пук среньк

     
     
  • 3.25, Аноним (25), 22:53, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы только 2. Есть же ещё ninja, waf, scons и прочая дичь. Вообще православным с точки зрения философии unix  можно считать только autotools, но оно редко встречается к сожалению
     
     
  • 4.26, Аноним (26), 23:08, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Если бы только 2

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

    >с точки зрения философии unix  можно считать только autotools

    Лол, автотулзы фундаментально несовместимы с юниксом - https://www.cs.cmu.edu/afs/club.cc.cmu.edu/usr/cmccabe/blog-notes/autotools_co

     
     
  • 5.29, warlock66613 (ok), 03:54, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > автотулзы фундаментально несовместимы с юниксом

    Вообще-то там написано нечто иное: что _ваш_ Makefile.aчего-тотам наверняка не совместим с Юниксом. И что если вы таки захотите чтобы он был совместим, вам придётся поработать, долго и бессмысленно. Ну то есть да, проблемы с совместимостью есть и очень серьёзные, но "фундаментально несовместимы" — это неправда.

     
     
  • 6.33, Аноним (33), 10:11, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >что _ваш_ Makefile.aчего-тотам наверняка не совместим с Юниксом

    Давай начнём со списка того, что ты лично пробовал собирать автотулзами на каком-нибудь юниксе =)
    >фундаментально несовместимы" — это неправда.

    Правда. Они несовместимы не только технически, но и идеологически. Потому что скриптовая лапша с помощью которой теоретически можно случайно вызвать Ктулху - очень далека от do one thing and do it well.

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

     
     
  • 7.36, warlock66613 (ok), 12:00, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Давай начнём со списка того, что ты лично пробовал собирать автотулзами на каком-нибудь юниксе =)

    Я не настолько старый. Впрочем, FreeBSD — это тоже "какой-нибудь юникс".

    > Они несовместимы не только технически, но и идеологически.

    Технологически они, как мы выяснили, вполне совместимы. А "идеологическая несовместимость" — это просто инфантильное потакание тараканам в голове.

    > Вообще-то я философию юникса за говно держу

    Да я догадался. Я виндузятников нюхом чую даже через монитор. Человек может ещё даже ничего не написать, а я уже понимаю: виндузятник.

     
  • 7.38, Michael Shigorin (ok), 20:59, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > что ты лично пробовал собирать автотулзами на каком-нибудь юниксе =)

    Так-то собирают обычно make или ещё чем подобным.

    Ну и валяйте, рассказывайте, как бутстрапили шмяк со всем нужным трипитоном и милым jsoncpp на каком-нибудь чпуксе или ain't unix.  Повздыхаем вместе с учётом того, во что это вылилось даже на линуксе, но не x86 и не gcc.

    // понимаю, что пнуть просто нельзя, но обратить-то вминание можно?

     
  • 4.44, Аноним (40), 09:13, 14/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > православным

    Афинянином что ли? )

     
  • 2.27, Аноним (27), 03:11, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Скажите() пожалуйста() почему() CMake() стал() более() менее() внятным()?
     
  • 2.31, leap42 (ok), 06:04, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    CMake никогда не был внятным (и не будет). Стандартом он был есть и будет только для C++.
     

  • 1.14, Аноним (14), 18:49, 11/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Cmake лучше.
     
     
  • 2.16, Аноним (16), 19:08, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я понимаю, что ты хотел пошутить, но юмор не твоё.
     
  • 2.17, Аноним (17), 19:43, 11/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А Make ещё лучше.
     
     
  • 3.28, Аноним (27), 03:13, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А конкурс дегенеративных шуток про системы сборок.
    А Automake/Autocong еще лучше.
     
  • 2.32, Аноним (32), 09:26, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    CMake дает больше возможностей, но у него стремная документация, и нет единого подхода к типовому проекту. Все пишут портянки CMake немного посвоему.
     
     
  • 3.42, Анонин (?), 23:12, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    После того как написан хороший код, расслабиться в Cmake/Make. Или наоборот: чтоб финальный рывок, так сказать, произвести в концентрации скилла и мысли...
     
  • 2.39, Michael Shigorin (ok), 21:00, 12/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ...а все грузовики переименовать в шмяковики!
     

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



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

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