The OpenNET Project / Index page

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

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

21.10.2024 09:23

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

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

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

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

  • Добавлена команда "meson reprotest" для тестирования повторяемых сборок.
  • Добавлена поддержка компилятора flang, развиваемого проектом LLVM.
  • Добавлена поддержка SDK DIA (Debug Interface Access), позволяющего читать отладочную информацию в формате PDB, используемом на платформе Windows.
  • В компиляторах nvc и nvc++ от компании NVIDIA обеспечена возможность выбора стандартов Си и Си++. В nvc: c89, c90, c99, c11, c17, c18, gnu90, gnu89, gnu99, gnu11, gnu17, gnu18. В nvc++: c++98, c++03, c++11, c++14, c++17, c++20, c++23, gnu++98, gnu++03, gnu++11, gnu++14, gnu++17, gnu++20.
  • Предоставлена возможность определения наличия специфичных для Qt утилит (moc, uic, rcc и lrelease) через вызов функции has_tools() для импортированных модулей сборки Qt.
  • Реализована возможность использования компилятора OpenXL на платформе AIX (помимо ранее поддерживаемого GCC).
  • По умолчанию включён вывод предупреждений о всех устаревших возможностях, если в функции project() для собираемого проекта не указана минимальная версия Meson.
  • Добавлена поддержка использования переменных в системных зависимостях (в методе get_variable()).
  • Добавлено предупреждение об экспериментальном характере поддержки субпроектов Cargo.
  • В зависимостях, полученных из субпроектов CMake, теперь разрешено использование только флагов компоновки, помеченных в CMake как PUBLIC или INTERFACE (флаги, помеченные как PRIVATE, применяются только при сборке библиотеки субпроекта, а не при использовании в роли зависимости).
  • Добавлена опция default_both_libraries, позволяющая переопределить поведение по умолчанию сборочной цели both_libraries.
  • Для внутренних зависимостей, возвращаемых функцией declare_dependency(), реализованы методы as_static и as_shared для преобразования списка зависимостей с учётом статического или динамического связывания.
  • В функциях test() и benchmark() добавлена возможность определения того, что проверяемый исполняемый файл является обёрткой для вызова других программ. Например:
    
       test('some_test', find_program('sudo'), args : [ find_program('sh'), 'script.sh' ])
    
  • Добавлена поддержка использования вместо Clang фронтэнда компилятора C/C++, предоставляемого в инструментарии к языку Zig 0.11.


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


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 10:03, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    тащить python, ninja, а теперь ещё и llvm (!!!) для такой примитивной задачи как сборка
     
     
  • 2.5, llolik (ok), 10:15, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ну, Python и так практически везде есть.
    Ninja - она же мелкая и простая, вроде. В чём проблема её притащить?
    Зачем LLVM? В новости написано, что Meson научился работать с новым компилятором. Всё. Для самого meson он не нужен.
     
     
  • 3.6, Аноним (6), 10:40, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Чел, очевидно, не только со сборкой C/C++ проектов не сталкивался, но даже и новость не удосужился нормально прочитать. Зато как возмутился!
     
  • 3.22, Ivan_83 (ok), 13:22, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нафиг бы питоне не упал, если честно. Как и перл.
     
     
  • 4.25, llolik (ok), 14:05, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, muon есть на чистом с99. Свои поделки проверял, вроде собирает. Таблица совместимости https://muon.build/releases/v0.4.0/docs/status.html . Меня единственное обламывает, что модуль cmake здесь не реализован и cmake-зависимости не подцепишь не переписав.

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

     
  • 4.26, Аноним (26), 14:50, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Нафиг бы питоне не упал, если честно. Как и перл

    Что предлагаешь вместо них?

     
     
  • 5.27, Someone (??), 15:02, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, ассемблер.. Ему не писать, ему пользоваться.
     
  • 5.42, Аноним (-), 18:56, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Что предлагаешь вместо них?

    Сишку конечно.
    Больше ничего осилить не могут.

     
  • 5.52, Анонис (?), 22:22, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    qbs, cmake...
     
  • 5.58, Ivan_83 (ok), 14:42, 23/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы предложил shell based сборочные системы, типа шелл то есть везде.
    Но и луа сборочные системы тоже хороши и даже ещё лучше чем питон based в плане лёгкости переносимости, правки, синтаксиса и пр.
     
  • 2.7, Аноним (7), 10:50, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Напрасно ты так пренебрежительно.
    "Для такой примитивной задачи как сборка" уже придумано количество систем больше, чем языков программирования.
     
     
  • 3.54, Bottle (?), 00:15, 22/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И что смешно, из-за них в том числе нет единой экосистемы.
    При попытке собрать проект из библиотек на C/C++ надо париться с кучей систем сборки.
    Вот они последствия "стандарта" ISO.
     
  • 2.15, Ember (?), 11:48, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    llvm в базе FreeBSD уже лет семь наверное.
     
     
  • 3.59, Ivan_83 (ok), 14:44, 23/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Он там не для непонятных применений а для сборки системы и части софта из портов.
    Его даже для drm/mesa не используют никогда из базы и всякий раз ставится отдельный llvm из портов.
     
  • 2.28, Аноним (-), 15:44, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > тащить python, ninja, а теперь ещё и llvm (!!!) для такой примитивной задачи как сборка

    Открой для себя muon - то же самое но на си :). Без всего этого счастья. А у питонистов как обычно HG номер два получится.

     
     
  • 3.35, Someone (??), 17:15, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можно подумать, что HG это что-то плохое.
     
     
  • 4.51, Аноним (-), 22:05, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Можно подумать, что HG это что-то плохое.

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

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

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

     
     
  • 5.60, нах. (?), 00:38, 25/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    наш эксперт, не видевший в жизни ничего кроме своих наколенных поделок снова с ценным мнением.

    git - НОЛЬ модулей за двадцать лет. lfs забит кувалдой куда-то в нутро как попало, и как получилось. На все деньги ms.

    hg - ЦЕЛИКОМ модульная, десятки 3d-party модулей, помимо входящих в комплект (или, даже бывало, включенных в него постфактум).

    Ужасно далекие эти люди, ага. Неосилятор хренов.


     
     
  • 6.61, Аноним (-), 03:31, 25/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если что-то выглядит как г-но и работает как г-но я называю это г-ном Представл... большой текст свёрнут, показать
     
     
  • 7.63, нах. (?), 13:20, 26/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Если что-то выглядит как г-но и работает как г-но

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

    Если тебя тыкают носом в твою лужицу и ты начинаешь вилять вместо того чтоб признать незнание - то г-но снова ты.

    Повторяю - гит не модульный г-нософт, мешанина тяпляперского кода на минимум трех разных языках. Модульный by design - hg. Ты только что прилюдно нассал и улегся в свою лужу.

    То что создатели hg не контролировали разработку языка, от которого зависели - не их вина, за ними не стояли миллиарды IBM. Да, эту ошибку совершила куча проектов, многие из-за нее погибли. Ни один проект не застрахован, если у него нет миллиардов. С качеством проекта это никак не связано.

    Причем один из тех трех чудом не повторил судьбу пихона.

     
  • 2.56, leap42 (ok), 18:27, 22/10/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > тащить python, ninja, а теперь ещё и llvm (!!!) для такой примитивной задачи как сборка

    Так не тащите. Собирайте для других другими инструментами... Хотя кого я обманываю - вы ментейнер ничего, и новость не для вас 🤷‍♂️

     

  • 1.8, Аноним (8), 11:00, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > возможно применение и других бэкендов, таких как xcode и VisualStudio

    Стоят друг друга.

     
  • 1.9, Аноним (8), 11:03, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Поддерживается кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC

    Так и поступаю. Только GCC. Везде. В Haiku даже ставить не нужно - в комплекте есть.

     
     
  • 2.24, Аноним (24), 14:02, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а что с OpenBSD?
     
     
  • 3.34, Аноним (34), 17:03, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А ее только вендоводы в виртуалке гоняют.
     

  • 1.16, Аноним (-), 11:49, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В компиляторах nvc и nvc++ от компании NVIDIA

    Я бы на их месте использовал бы GCC.

     
     
  • 2.23, nume (ok), 13:37, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В новости же указано, что GCC уже поддерживается
     
     
  • 3.31, Аноним (-), 15:59, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На месте NVIDIA я бы использовал в своих проектах только GCC.
     
     
  • 4.38, Аноним (38), 18:25, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот в том числе поэтому ты NVidia и не владеешь.
     

  • 1.30, Аноним (-), 15:57, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >возможно применение и других бэкендов, таких как Xcode и Visual Studio

    А вот этого делать не надо. Это проприетарные IDE. Я бы на месте разработчиков Meson выкинул бы поддержку этих IDE.

     
     
  • 2.33, Аноним (33), 16:31, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, vscode открыт. Во-вторых, какая разница? Ты юрист или у тебя весь комп из открытых компонентов, только xcode мешает?)
     
     
  • 3.39, Бывалый Смузихлёб (ok), 18:40, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    vs code - это некое новое подобие блокнот++, а visual studio( без code ) - это жирнющая IDE, которая или платная или очень платная но с некими условными возможностями бесплатной работы
     
  • 2.40, Бывалый Смузихлёб (ok), 18:42, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не все сидят в лине/бздях и компилят под них же. Без XCode едва ли собрать и выпустить полноценное приложение под яблоко. Там много чего ещё требуется помимо, собственно, компиляции

    Вдобавок, XCode бесплатен, хоть и есть только под яблоко

     
  • 2.41, Аноним (-), 18:53, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Чтобы сократить пользовательскую базу до нищуков и/или фанатиков?
    Слава богу у разработчиков есть мозги, не выкидывать два самые распространенные пратформы в пользу нетрадиционного 4% меньшинства.
     
     
  • 3.47, Аноним (47), 20:40, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > в пользу нетрадиционного 4% меньшинства.
    > 4%

    Врядли сабж так уж востребован на стимдеках.

     
  • 3.62, Dima (??), 11:47, 26/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На серверах, роутерах, имбедовке, телефонах у Linux 4 процента? Перестань принимать наркотики
     
     
  • 4.65, нах. (?), 13:23, 26/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На серверах, роутерах, имбедовке, телефонах у Linux 4 процента? Перестань принимать наркотики

      X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK.
    безусловно очень важны для серверов, телефонов и эмбедовки.

    А свой /bin/ls как-нибудь уж соберу без массонов или как их там. Все равно их пихоноподелка на той эмбедовке не работает, да и llvm "пишутъ".


     

  • 1.36, Аноним (38), 18:11, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавлена поддержка SDK DIA (Debug Interface Access), позволяющего читать отладочную информацию в формате PDB, используемом на платформе Windows.

    Лишь бы опенсорсные решения не использовать:

    https://github.com/wbenny/pdbex
    https://github.com/MolecularMatters/raw_pdb
    https://github.com/llvm/llvm-project/tree/main/llvm/lib/DebugInfo

     
     
  • 2.37, Аноним (38), 18:12, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://github.com/ufrisk/pdbcrust
     
  • 2.55, Аноним (55), 00:16, 22/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тут тонкий момент, что одно время мелкомягкие часто втихушку меняли формат. И чтобы работать с выхлопом свежих студий нужны были и актуальные версии библиотечек из DIA SDK. Реверсили это дело много кто, но в паблике полноценного опенсорсного решения так и не было, пока не открыли спеки. Допускаю, что привычка к DIA осталась с тех времён.
     

  • 1.48, неаноним (?), 21:11, 21/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что анон скажет об xmake?
     
     
  • 2.49, Вы забыли заполнить поле Name (?), 21:21, 21/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Был же уже premake
     

  • 1.57, Аноним (57), 11:57, 23/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А у кого есть опыт крос сборки на этом чуде, а сборки bare-native кода?
    Поделитесь опытом на хабре пожалуйста.
     
     
  • 2.64, нах. (?), 13:21, 26/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А у кого есть опыт крос сборки на этом чуде, а сборки
    > bare-native кода?
    > Поделитесь опытом на хабре пожалуйста.

    стесняюсь спросить - оно то или другое вообще-то может? А то есть нехилые подозрения, что нет.

     

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



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

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