Meson build system version 1.0

Yo pibliye lage sistèm konstriksyon Meson 1.0.0, ki itilize pou konstwi pwojè tankou X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ak GTK. Kòd Meson ekri nan Python epi li gen lisans anba Apache 2.0 lisans.

Objektif devlopman kle nan Meson se bay yon pwosesis asanble gwo vitès konbine avèk konvenyans ak fasilite nan itilize. Olye pou yo fè, bati a sèvi ak zouti Ninja pa default, men lòt backends tankou xcode ak VisualStudio ka itilize tou. Sistèm nan gen yon gestionnaire depandans milti-platfòm entegre ki pèmèt ou sèvi ak Meson pou konstwi pakè pou distribisyon. Règ asanble yo mete nan yon lang senplifye espesifik domèn, yo byen lizib ak konprann itilizatè a (dapre lide otè yo, pwomotè a ta dwe pase yon minimòm de tan ekri règ).

Konpile kwa ak bati sou Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ak Windows lè l sèvi avèk GCC, Clang, Visual Studio ak lòt konpilateur yo sipòte. Li posib pou konstwi pwojè nan divès langaj pwogramasyon, tankou C, C++, Fortran, Java ak Rust. Yon mòd bati incrémentielle sipòte, nan ki se sèlman eleman ki gen rapò dirèkteman ak chanjman ki fèt depi dènye bati a yo rebati. Meson ka itilize pou jenere batiman repete, kote kouri bati nan diferan anviwònman rezilta nan ègzèkutabl konplètman idantik.

Prensipal inovasyon nan 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.

Sous: opennet.ru

Add nouvo kòmantè