Mezon | |
---|---|
| |
Típusú | ingyenes és nyílt forráskódú szoftverek és automatizálási eszköz [d] |
Fejlesztő | Jussi Pakkanen [d] [1] |
Beírva | Python [2] |
Operációs rendszer | Unix-szerű operációs rendszer [3] és Microsoft Windows |
Interfész nyelvek | angol |
Első kiadás | 2012. március 2 |
Hardver platform | többplatformos [3] |
legújabb verzió |
|
Állapot | aktív |
Engedély | Apache License 2.0 [5] [1] |
Weboldal | mesonbuild.com _ |
Médiafájlok a Wikimedia Commons oldalon |
A Meson ( MFA [ ˈ m i ː z ɒ n ]; angolul - " meson " ) egy többplatformos konzol - segédprogram , amely automatizálja a szoftver forráskódból történő létrehozásának folyamatát . A Meson nyílt forráskódú , és az Apache licenc alatt van licencelve . A Meson fő ötlete az, hogy a lehető leggyorsabban építsen, és egyetlen csepp időt se töltsön hibakereséssel és teszteléssel , valamint várja meg a fordítási folyamat megkezdését . A segédprogramnak van egy hosszabb, teljes neve is - "The Meson build system" (Meson Assembly System). De annak ellenére, hogy a Meson hivatalosan build rendszerként van pozícionálva, valójában nem az, mivel alapvetően egy másik segédprogramot használ - a Ninja build rendszert és számos más segédprogramot [6] [7] .
A Meson első verziója a karácsonyi ünnepek alatt jelent meg 2012-ben, és a finn fizikus , Jussi Pakkanen programozó fejlesztette ki. A fejlesztőt lehangolta az az állapot, amelyben az összeszerelő automatizálási rendszerek akkoriban megérkeztek. Sokakat nem szeretett, mert túl lassúak voltak, néhányat túl nehéz volt a gyakorlatban megvalósítani, másoknak pedig túl bonyolult és homályos a szintaxisa . Mivel nem találta meg a kívánt összeállítási rendszert, Jussi úgy döntött, hogy szabadidejét tölti ezen az ünnepi hétvégén, és elkészíti az igényeinek megfelelő saját build rendszert [8] [9] .
A segédprogram nevének megválasztásánál figyelembe vették azt a tényt , hogy ne essen egybe a Debian rendszercsomagkezelő adatbázisból származó csomagok nevével vagy a SourceForge adatbázisban található projektekkel . Mivel Jussi fizikus-programozó, valamikor úgy döntött, hogy az elemi részecske nevét használja - Gluon (angol Gluon, a ragasztó szóból - ragasztó), ami arra utal, hogy "a gluonok olyan elemi részecskék, amelyek protonokat és neutronokat tartják össze, hasonlóan a build rendszer dolga ahhoz, hogy a forráskód darabjait és egy fordítóprogramot vegyen, majd összekapcsolja őket." De sajnos ezt a nevet már felvették, majd miután több megmaradt szubatomi részecskét átválogatott , rájött, hogy a részecske mezon neve szabadnak bizonyult [10] .
A Meson kitűzött célja a korszerű fejlesztési módszerek népszerűsítése. Ilyen például a „ single assembly ” metódus használata, összeállítás kódlefedettséggel , LTO optimalizálás ( link time optimization ) stb. Anélkül, hogy a programozónak ehhez támogatást kellene írnia.
A Python nyelven írt Meson natívan Unix-szerű operációs rendszereken fut , beleértve a macOS -t, valamint a Microsoft Windows -t és számos más operációs rendszert.
A Meson támogatja a C , C++ , CUDA , D , Objective-C , Fortran , Java , C# , Rust , Vala [11] és a "Wrap" [12] függőséget kezelő mechanizmust .
A Meson támogatja a GNU Compiler Collection , Clang , Microsoft Visual C++ és más fordítókat, beleértve a nem hagyományos fordítókat, mint például az Emscripten és a Cython [13] [14] . Ugyanakkor a Meson önállóan dönti el, hogy melyik fordítót és milyen paraméterekkel használja. A projektek keresztfordítása további konfigurációt igényel, amelyet a Meson külön fájlként tart fenn, amely külső lehet egy Meson projekten [15] .
A Meson a Ninja-t használja fő összeállítási rendszereként, de használhatja a Microsoft Visual Studio -t vagy az Xcode -ot is .
A Meson automatikusan képes megtalálni és használni a külső függőségeket a pkg-config , a CMake és a projekt-specifikus keresés segítségével [16] , de ez csak azokat a telepített függőségeket találja meg, amelyekkel a Meson nem tud mit kezdeni. Alternatív megoldásként, vagy tartalékként a függőséget biztosíthatjuk alprojektként – egy másikon belüli Meson projektként, vagy külső letöltési hivatkozásként, esetleg javításokkal [12] . Ez lehetővé teszi a Mesonnak, hogy feloldja a " függőségi poklot " a hétköznapi felhasználók kényelme érdekében, akik egy projektet szeretnének fordítani, de hozzájárulhat a szoftverek felfújásához is, ha helyette egy közös telepített függőséget lehetne használni. Így a Linux-csomagok használatának előnyben részesített módja háttérbe szorul.
A Meson a saját alprojekt rendszere mellett a CMake alprojekt rendszert is támogatja. A Meson összeállítási fájl hivatkozhat a Wrap DB szolgáltatásra is [17] .
A Meson kezdetben beépített támogatással rendelkezik a Visual Studio és az XCode számára, de az ISR -ek széles skálájával való integráció egyszerűsítése érdekében egy speciális API -t fejlesztettek ki a probléma megoldására. Ehhez minden alkalommal, amikor a Meson felépít, létrehoz egy „meson-info” mappát, és JSON információs fájlokat helyez el ebbe . Ezen fájlok segítségével bármely program részletes információkat kaphat az épülő projektekről [18] .
A Meson összeállításleíró fájlok szintaxisa (Meson nyelv) a Pythonból kölcsönzött, de maga nem Python nyelv. Úgy tervezték, hogy bármely más nyelven újra implementálható legyen [19] [20] . Például a Meson++ [21] egy C++ implementáció, a Python-függőség csak egy implementációs részlet.
A Meson nyelv szándékosan nem Turing-teljes , ezért nem tud tetszőleges programot kifejezni [22] . Ehelyett a támogatott nyelvek fordításán túlmenő tetszőleges felépítési lépések egyéni célként jeleníthetők meg [23] .
A Meson nyelv erősen típusos, ezért a beépített típusok, mint a library, a executable, a strings és ezek listái nem cserélhetők fel [24] . A változóknak nincs látható típusuk, ami szintén dinamikusan írja be a Mesont. Ellentétben ugyanazzal a Make -val , a listatípus nem választja el a karakterláncokat a szóközökön [25] .
Hozzuk létre a " Hello, World!" " projekt C nyelven, a fájl neve " main.c ".
#include <stdio.h> int main () { tesz ( "Helló, Világ!" ); return 0 ; }Ezután hozzon létre egy fájlt - " meson.build ".
project ( 'tutorial' , 'c' ) # tutorial a projekt neve, # c - programozási nyelv futtatható ( 'demo' , 'main.c' ) # demo a végrehajtható fájl neve, # "main.c" - forráskód fájlElőször is inicializáljuk a projektet.
$ meson beállítás builddirMegjelenik a " builddir " könyvtár, menjünk bele és építsük fel a projektünket.
$ cd builddir $ meson fordításA végrehajtható fájl készen áll, már csak futni kell.
$ ./demóA szoftverprojektek listájából a legjelentősebb és legbefolyásosabb [26] kiemelhető :
Szerelési automatizálási rendszerek | |
---|---|