Издание на системот за изградба на Meson 1.0

Објавено е издавањето на системот за градење Meson 1.0.0, кој се користи за изградба на проекти како што се X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Месон кодот е напишан во Python и е лиценциран под лиценцата Apache 2.0.

Клучната развојна цел на Meson е да обезбеди процес на склопување со голема брзина во комбинација со практичност и леснотија на користење. Наместо марка, конструкцијата стандардно го користи комплетот со алатки 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.

Извор: opennet.ru

Додадете коментар