Meson build rendszer kiadás 1.1

Megjelent a Meson 1.1.0 build rendszer, amelyet olyan projektek készítésére használnak, mint az X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME és GTK. A Meson kódja Python nyelven íródott, és az Apache 2.0 licenc alatt van.

A Meson fejlesztésének fő célja az összeszerelési folyamat nagy sebessége, a kényelem és a könnyű kezelhetőség kombinációja. A make segédprogram helyett alapértelmezés szerint a Ninja eszközkészletet használják az építés során, de más háttérprogramok, például az xcode és a VisualStudio is használhatók. A rendszer beépített többplatformos függőségi kezelővel rendelkezik, amely lehetővé teszi, hogy a Meson segítségével csomagokat készítsen disztribúciókhoz. Az összeállítási szabályok egyszerűsített, tartományspecifikus nyelven vannak megadva, jól olvashatóak és érthetőek a felhasználó számára (a szerzők szándéka szerint a fejlesztőnek minimális időt kell töltenie a szabályok megírásával).

Támogatja a keresztfordítást és az építkezést Linuxon, Illumos/Solarison, FreeBSD-n, NetBSD-n, DragonFly BSD-n, Haiku-n, macOS-en és Windowson a GCC, Clang, Visual Studio és más fordítók segítségével. Lehetőség van projektek készítésére különféle programozási nyelveken, köztük C, C++, Fortran, Java és Rust. A növekményes felépítési mód támogatott, amelyben csak az utolsó build óta végrehajtott változtatásokhoz közvetlenül kapcsolódó összetevők épülnek újra. A Meson segítségével megismételhető buildek generálhatók, amelyekben a build különböző környezetekben történő futtatása teljesen azonos futtatható fájlok generálását eredményezi.

A Meson 1.1 főbb újításai:

  • Egy új "objects:" argumentum került hozzáadásra a deklarációs_dependency()-hez, hogy az objektumokat közvetlenül a végrehajtható fájlokhoz csatolja belső függőségek formájában, amelyek nem igénylik a link_who használatát.
  • A "meson devenv -dump" parancsnak lehetősége van megadni egy fájlt a környezeti változók írásához, ahelyett, hogy szabványos kimenetre nyomtatná.
  • Hozzáadott FeatureOption.enable_if és FeatureOption.disable_if metódusok, hogy megkönnyítsék a feltételes feltételek létrehozását a dependency() függvénynek való paraméterek átadására való felkészülés során. opt = get_option('feature').disable_if(not foo, error_message : 'A funkció nem engedélyezhető, ha a foo is nincs engedélyezve') dep = dependency('foo', kötelező : opt)
  • A generált objektumok argumentumként történő átadása az „objects:”-nek megengedett.
  • A projekt funkció mostantól támogatja a projektlicencekre vonatkozó információkat tartalmazó fájlok telepítését.
  • A „sudo meson install” futtatása biztosítja, hogy a jogosultságok visszaálljanak a célplatformok újraépítése során.
  • A "meson install" parancs lehetővé teszi egy külön kezelő megadását a root jogok megszerzéséhez (például választhat polkit, sudo, opendoas vagy $MESON_ROOT_CMD). A „meson install” nem interaktív módban történő futtatása már nem kísérli meg a jogosultságok kiterjesztését.
  • Támogatás hozzáadva a meson.options fájlból a meson_options.txt helyett a beállítások olvasásához.
  • Az önvizsgálat előrehaladásáról szóló információk átirányítása az stderr-re.
  • Új "none" háttérrendszer hozzáadva (--backend=none) olyan projektek létrehozásához, amelyek csak telepítési szabályokkal rendelkeznek, és nincsenek összeállítási szabályok.
  • Egy új pybind11 függőséget adtunk hozzá, amely lehetővé teszi, hogy a dependency('pybind11') működjön együtt a pkg-config és cmake állományokkal a pybind11-config szkript használata nélkül.
  • A "--reconfigure" és "--wipe" opciók megengedettek (meson setup --reconfigure builddir és meson setup --wipe builddir ) üres builddir esetén.
  • A dry_run kulcsszó támogatása hozzáadva a meson.add_install_script() fájlhoz, hogy lehetővé tegye saját telepítő szkriptek futtatását a "meson install --dry-run" meghívásakor.

Forrás: opennet.ru

Hozzászólás