Meson build rendszer kiadás 0.52

közzétett build rendszer kiadás Meson 0.52, 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ód Python és nyelven van írva szállított Apache 2.0 licenc alatt.

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 az alapértelmezett build az eszközkészletet használja Nindzsa, de más háttérprogramok, például xcode és VisualStudio használata is lehetséges. 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ámogatott keresztfordítás és építkezés Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS és Windows rendszerekre 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 főbb innovációk Meson 0.52:

  • Hozzáadott kísérleti támogatás a Webassembly számára az Emscripten fordítóként történő használatával;
  • Az Illumos és Solaris platformok támogatása jelentősen javult, és működőképes állapotba került;
  • Biztosítja, hogy a gettext alapú nemzetköziesítési szkriptek figyelmen kívül maradjanak, ha a rendszerben nincs telepítve a gettext eszközkészlet (korábban hiba jelent meg az i18n modul használatakor gettext nélküli rendszereken);
  • A statikus könyvtárak továbbfejlesztett támogatása. Az eltávolított statikus könyvtárak használatával kapcsolatos számos probléma megoldódott;
  • Hozzáadtuk a szótárak használatát a környezeti változók hozzárendeléséhez. A Environment() meghívásakor az első elem megadható szótárként, amelyben a környezeti változók kulcs/érték formában vannak megadva. Ezek a változók úgy kerülnek át az Environment_object-be, mintha a set() metódussal külön-külön beállították volna őket. A szótárak ezentúl átadhatók különféle függvényeknek, amelyek támogatják az "env" argumentumot;
  • Hozzáadott "runtarget alias_target(cél_neve, dep1, ...)" függvény, amely egy új első szintű build-célt hoz létre, amely meghívható a kiválasztott build háttérprogrammal (pl. "ninja target_name"). Ez az összeállítási cél nem futtat semmilyen parancsot, de biztosítja, hogy minden függőség létrejön;
  • A PKG_CONFIG_SYSROOT_DIR környezeti változó automatikus beállítása a keresztfordítás során, ha van sys_root beállítás a „[properties]” szakaszban;
  • Hozzáadott "--gdb-path" opció a GDB hibakereső elérési útjának meghatározásához, amikor megadja a "--gdb testname" beállítást a GDB futtatásához a megadott tesztszkripttel;
  • Hozzáadtuk a csengő-tidy build cél automatikus észlelését, hogy ez a linter az összes forrásfájllal együtt futhasson. A cél akkor jön létre, ha a clang-tidy elérhető a rendszerben, és a „.clang-tidy” (vagy „_clang-tidy”) fájl definiálva van a projekt gyökérjében;
  • Dependency ('blokkok') hozzáadva a Clang kiterjesztéshez Blocks;
  • A linker és a fordító nézet elkülönül, lehetővé téve a fordítók és linkerek különböző kombinációinak használatát;
  • Az all_dependencies() metódus hozzáadva a SourceSet objektumokhoz az all_sources() metódus mellett;
  • A run_project_tests.py fájlban a „--only” beállítás hozzáadásra került a tesztek szelektív futtatásához (például „python run_project_tests.py —only fortran python3”);
  • A find_program() függvény mostantól képes csak a program szükséges verzióira keresni (a verziót a program „-version” opcióval történő futtatása határozza meg);
  • A szimbólumok exportálásának vezérléséhez a vs_module_defs opciót hozzáadtuk a shared_module() függvényhez, hasonlóan a shared_library() függvényhez;
  • A kconfig modul kibővült, hogy támogassa a configure_file() függvényt a bemeneti fájl megadásához;
  • A configure_file();
  • Az archívum létrehozására szolgáló „dist” parancs átkerült az első szintű parancsok kategóriájába (korábban a parancs nindzsához volt kötve). Hozzáadott "--formats" opció a létrehozandó archívumok típusának meghatározásához (pl.
    "meson dist -formats=xztar,zip").

Forrás: opennet.ru

Hozzászólás