Выпуск зборачнай сістэмы Meson 1.0

Апублікаваны рэліз зборачнай сістэмы 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 ', '#include '])
  • Дададзены новы аргумент "-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

Дадаць каментар