Meson build rendszer kiadás 0.51

közzétett build rendszer kiadás Meson 0.51, 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).

A Linux, macOS és Windows rendszereken való keresztfordítás és építkezés GCC, Clang, Visual Studio és más fordítók használatával támogatott. 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.51:

  • Támogatás hozzáadva a CMake build szkripteket használó meglévő projektek átlátható felépítéséhez. A Meson mostantól közvetlenül tud egyszerű alprojekteket (például egyedi könyvtárakat) készíteni a CMake modul segítségével, hasonlóan a szabványos alprojektekhez (beleértve a CMake alprojekteket is elhelyezheti az alprojektek könyvtárában);
  • Az összes használt fordító esetében az előzetes tesztelés az egyszerű tesztfájlok összeállításán és végrehajtásán keresztül történik (józanság ellenőrzése), nem korlátozódik a keresztfordítók felhasználó által megadott jelzőinek tesztelésére (mostantól az aktuális platformon natív fordítókat is ellenőrizzük). .
  • Hozzáadtuk a keresztfordítás során használt parancssori opciók meghatározásának lehetőségét, az opció előtt platform-előtag megadásával kötéssel. Korábban a parancssori opciók csak a natív buildekre vonatkoztak, és nem lehetett megadni a keresztfordításhoz. A parancssori opciók mostantól függetlenül attól, hogy natív módon vagy keresztfordítással építkeznek, biztosítva, hogy a natív és a keresztfordítások azonos eredményeket hozzanak;
  • Hozzáadtuk a „--cross-file” jelző többszöri megadásának lehetőségét a parancssorban több keresztfájl listázásához;
  • Hozzáadott támogatás az ICL fordítóhoz (Intel C/C++ Compiler) a Windows platformhoz (ICL.EXE és ifort);
  • Hozzáadott kezdeti eszközkészlet támogatása a CPU Xtensa számára (xt-xcc, xt-xc++, xt-nm);
  • A "get_variable" metódus hozzáadásra került a "dependency" objektumhoz, amely lehetővé teszi egy változó értékének lekérését anélkül, hogy figyelembe venné az aktuális függőség típusát (például dep.get_variable(pkg-config : 'var- név', cmake : 'COP_VAR_NAME));
  • Hozzáadott egy új célösszeállítás-beállítások argumentumot, a "link_language", amely kifejezetten megadja a linker meghívásakor használt nyelvet. Például egy fő Fortran program hívhat C/C++ kódot, amely automatikusan kiválasztja a C/C++ kódot, amikor a Fortran linkert kell használni;
  • A CPPFLAGS előfeldolgozó jelzők kezelése megváltozott. Míg a Meson korábban külön tárolta a CPPFLAGS-t és a nyelvspecifikus fordításjelzőket (CFLAGS, CXXFLAGS), most már elválaszthatatlanul dolgozzák fel őket, és a CPPFLAGS-ben felsorolt ​​jelzők egy másik forrásaként használják az azokat támogató nyelvek fordítási jelzőit;
  • A custom_target és custom_target[i] kimenete mostantól argumentumként használható a link_with és link_whole műveletekben;
  • A generátorok mostantól további függőségeket is megadhatnak a „depends” opció használatával (például generator(program_runner, output: ['@)[e-mail védett]'], attól függ: exe));
  • Hozzáadott egy statikus beállítást a find_library értékhez, hogy a keresés csak statikusan kapcsolt könyvtárakat tartalmazzon;
  • A python.find_installation esetében hozzáadásra került egy adott Python-modul jelenlétének meghatározására a Python adott verziójához;
  • Új unstable-kconfig modul hozzáadva a kconfig fájlok elemzéséhez;
  • Hozzáadott egy új „subprojects foreach” parancsot, amely argumentumokkal rendelkező parancsot vesz fel, és futtatja azt az összes alprojekt könyvtárban;

Forrás: opennet.ru

Hozzászólás