Izdaja sistema za gradnjo Meson 1.1

Objavljena je bila izdaja sistema za gradnjo Meson 1.1.0, ki se uporablja za gradnjo projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK. Koda Meson je napisana v Pythonu in je licencirana pod licenco Apache 2.0.

Ključni razvojni cilj podjetja Meson je zagotoviti visokohitrosten proces sestavljanja v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto make graditev privzeto uporablja komplet orodij Ninja, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio. Sistem ima vgrajen upravljalnik odvisnosti za več platform, ki vam omogoča uporabo Mesona za izdelavo paketov za distribucije. Pravila sestavljanja so postavljena v poenostavljenem domensko specifičnem jeziku, so dobro berljiva in razumljiva uporabniku (po zamisli avtorjev naj bi razvijalec porabil najmanj časa za pisanje pravil).

Podprto je navzkrižno prevajanje in gradnja na Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS in Windows z uporabo GCC, Clang, Visual Studio in drugih prevajalnikov. Projekte je mogoče graditi v različnih programskih jezikih, vključno s C, C++, Fortran, Javo in Rust. Podprt je inkrementalni način gradnje, v katerem se znova zgradijo samo komponente, ki so neposredno povezane s spremembami, izvedenimi od zadnje gradnje. Meson se lahko uporablja za generiranje ponovljivih gradenj, kjer zagon gradnje v različnih okoljih povzroči popolnoma enake izvedljive datoteke.

Glavne novosti Meson 1.1:

  • V declare_dependency() je bil dodan nov argument »objects:« za pripenjanje predmetov neposredno izvedljivim datotekam kot notranje odvisnosti, ki ne zahtevajo link_who.
  • Ukaz "meson devenv --dump" ima izbirno možnost podajanja datoteke za pisanje spremenljivk okolja, namesto da bi jih izpisali v standardni izhodni tok.
  • Dodani metodi FeatureOption.enable_if in FeatureOption.disable_if za lažje ustvarjanje pogojnikov v pripravi na posredovanje parametrov funkciji dependency(). opt = get_option('feature').disable_if(not foo, error_message: 'Funkcije ni mogoče omogočiti, če tudi foo ni omogočen') dep = odvisnost('foo', zahtevano: opt)
  • Ustvarjene objekte je dovoljeno posredovati med argumenti "predmeti:".
  • Projektna funkcija podpira namestitev datotek z informacijami o projektnih licencah.
  • Izvajanje »sudo meson install« zagotavlja ponastavitev privilegijev med vnovično gradnjo za ciljne platforme.
  • Ukaz "meson install" omogoča določitev ločenega upravljalnika za pridobivanje korenskih dovoljenj (na primer, izberete lahko polkit, sudo, opendoas ali $MESON_ROOT_CMD). Zagon "meson install" v neinteraktivnem načinu ne poskuša več dvigniti privilegijev.
  • Dodana podpora za možnosti branja iz datoteke meson.options namesto meson_options.txt.
  • Zagotovljena preusmeritev na stderr izhodnih informacij o napredku introspekcije.
  • Dodano je bilo novo zaledje »brez« (--backend=none) za ustvarjanje projektov, ki imajo samo pravila za namestitev in nimajo pravil za gradnjo.
  • Dodana je bila nova odvisnost pybind11, da bo odvisnost ('pybind11') delovala s pkg-config in cmake brez uporabe skripta pybind11-config.
  • Možnosti "--reconfigure" in "--wipe" (meson setup --reconfigure builddir in meson setup --wipe builddir ) sta dovoljeni s praznim builddirom.
  • meson.add_install_script() je dodal podporo za ključno besedo dry_run, ki vam omogoča zagon lastnih namestitvenih skriptov, ko kličete "meson install --dry-run".

Vir: opennet.ru

Dodaj komentar