Meson build systeem release 1.0

De frijlitting fan it Meson 1.0.0 buildsysteem is publisearre, dat wurdt brûkt om projekten te bouwen lykas X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK. De Meson-koade is skreaun yn Python en is lisinsje ûnder de Apache 2.0-lisinsje.

It wichtichste ûntwikkelingsdoel fan Meson is om in assemblageproses mei hege snelheid te leverjen kombineare mei gemak en gemak fan gebrûk. Ynstee fan meitsje, brûkt de build de Ninja toolkit standert, mar oare backends lykas xcode en VisualStudio kinne ek brûkt wurde. It systeem hat in ynboude multi-platfoarm ôfhinklikens handler wêrmei jo te brûken Meson te bouwen pakketten foar distribúsjes. Gearstallingsregels wurde ynsteld yn in ferienfâldige domein-spesifike taal, se binne goed lêsber en begryplik foar de brûker (neffens it idee fan 'e auteurs moat de ûntwikkelder in minimum tiid besteegje oan it skriuwen fan regels).

Cross-kompilearjen en bouwen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows mei GCC, Clang, Visual Studio en oare kompilatoren wurdt stipe. It is mooglik om projekten te bouwen yn ferskate programmeartalen, ynklusyf C, C++, Fortran, Java en Rust. In inkrementele boumodus wurdt stipe, wêrby't allinich komponinten dy't direkt relatearre binne oan feroarings makke sûnt de lêste build wurde opnij boud. Meson kin brûkt wurde om werhellbere builds te generearjen, wêrby't it útfieren fan de build yn ferskate omjouwings resulteart yn folslein identike útfierbere bestannen.

De wichtichste ynnovaasjes fan Meson 1.0:

  • In module foar bouprojekten yn de Rusttaal is stabyl ferklearre. Dizze module wurdt brûkt yn it Mesa-projekt om komponinten te bouwen skreaun yn Rust.
  • De foarheakselopsje, stipe yn de measte kompilerkontrôlefunksjes, biedt de mooglikheid om arrays te behanneljen neist stringen. Jo kinne no bygelyks opjaan: cc.check_header('GL/wglew.h', prefix: ['#include ', '#ynklusyf '])
  • Nij argumint "--workdir" tafoege om it oerskriuwen fan de wurkmap ta te stean. Om bygelyks de hjoeddeiske map te brûken ynstee fan de wurkmap, kinne jo útfiere: meson devenv -C builddir --workdir .
  • Nije operators "yn" en "net yn" binne foarsteld om it foarkommen fan in substring yn in tekenrige te bepalen, fergelykber mei de earder beskikbere kontrôle foar it foarkommen fan in elemint yn in array of wurdboek. Bygelyks: fs = import('fs') as 'wat' yn fs.read('somefile') # True endif
  • De opsje "warskôging-nivo=alles" tafoege, dy't de útfier fan alle beskikbere kompilator warskôgingen ynskeakelt (yn clang en MSVC brûkt it -Weverything en /Wall, en yn GCC binne warskôgings apart opnommen, sawat oerienkomme mei de -Weverything modus yn clang).
  • De metoade rust.bindgen ymplementearret de mooglikheid om it argumint "ôfhinklikens" te behanneljen om ôfhinklikenspaden troch te jaan dy't moatte wurde ferwurke troch de kompiler.
  • De funksje java.generate_native_headers is ôfret en omneamd ta java.native_headers om oan te passen oan Meson's mienskiplike funksje nammenstyl.

Boarne: opennet.ru

Add a comment