kokkuvĂ”tte sĂŒsteemi vĂ€ljalase , mida kasutatakse selliste projektide nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK+ ehitamiseks. Mesoni kood on kirjutatud Pythonis ja ainekood on litsentsitud Apache 2.0 all.
Mesoni arendamise peamine eesmĂ€rk on tagada ehitusprotsessi kĂ”rge kiirus koos kasutusmugavuse ja lihtsusega. Ehitamisel kasutatakse vaikimisi tööriista , kuid on vĂ”imalik kasutada ka muid tagasisidestajaid, nagu xcode ja VisualStudio. SĂŒsteemis on sisse ehitatud mitme platvormi sĂ”ltuvuste haldur, mis vĂ”imaldab kasutada Mesonit pakettide ehitamiseks distributsioonidele. Ehitamise reeglid mÀÀratakse lihtsustatud ainepĂ”hises keeles, mis on hĂ€sti loetav ja arusaadav kasutajale (autori mĂ”te on, et arendaja peaks reeglite kirjutamisele minimeerima aega).
ristkompileerimine ja kogumine Linuxis, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ja Windows kasutades GCC, Clang, Visual Studio ja muid kompilaatoreid. Projektide kogumine on vĂ”imalik erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatakse inkrementaalset kogumisreĆŸiimi, kus uuendatakse vaid komponente, mis on otseselt seotud muudatustega, mis on tehtud alates eelmise kogumise hetkest. Mesonit saab kasutada korduvate kogumiste loomiseks, kus kogumise kĂ€ivitamine eri keskkondades viib tĂ€pselt identsete kĂ€itatavate failide genereerimise.
Peamised Meson 0.52:
- Eksperimentaalne tugi Webassembly jaoks, kasutades kompilaatorina Emscripten;
- Illumos ja Solaris platvormide tugi on mÀrgatavalt paranenud ja viidud töökindlusse;
- Ignoreeritakse gettext-pĂ”histe rahvusvaheliste scriptide kasutamist, kui sĂŒsteemis pole installitud gettext-i tööriistu (varasemalt kuvati i18n mooduli kasutamisel sĂŒsteemides, kus gettext-i polnud, viga);
- Parandatud on staatiliste teekide tugi. Lahendatud on paljud probleemid eemaldatud staatiliste teekide kasutamisel;
- Lisatud vĂ”imalus kasutada sĂ”nastikke keskkonnamuutujate mÀÀramiseks. Funktsiooni environment() esimese argumendina saab nĂŒĂŒd nĂ€idata sĂ”nastikku, kus keskkonnamuutujad on mÀÀratletud vĂ”tme/vÀÀrtuse kujul. Need muutujad kantakse environment_object'i nagu need oleks eraldi seadistatud meetodi set() kaudu. SĂ”nastikke saab nĂŒĂŒd edastada ka erinevatesse funktsioonidesse, mis toetavad "env" argumendi mÀÀramist;
- Lisatud funktsioon "runtarget alias_target(target_name, dep1, âŠ)", mis loob uue esimese taseme ehituseesmĂ€rgi, mida saab kutsuda valitud ehitusbĂ€kkendi (nĂ€iteks "ninja target_name") kaudu. See ehituseesmĂ€rk ei kĂ€ivita mingeid kĂ€ske, vaid tagab kĂ”ikide sĂ”ltuvuste kogumise;
- Tagatud keskkonnamuutuja PKG_CONFIG_SYSROOT_DIR automaatne seadistamine ristkompileerimise ajal, kui sektsioonis "[properties]" on olemas sys_root seadistus;
- Lisatud valik "âgdb-path", et mÀÀrata GDB-sammukĂ€ija tee, kui antakse valik "âgdb testname" GDB kĂ€ivitamiseks mÀÀratud teststsenaariumi abil;
- Lisati automaatne clang-tidy koostamise eesmĂ€rgi mÀÀramine, et kĂ€ivitada see linter kĂ”ikide lĂ€htekoodifailidega. EesmĂ€rk luuakse, kui sĂŒsteemis on clang-tidy ja projekti juures on olemas fail ".clang-tidy" (vĂ”i "_clang-tidy");
- Lisatud sÔltuvus dependency('blocks') Clangi laienduse kasutamiseks ;
- Komplektijate ja kompilaatorite vaated on eraldatud, mis vÔimaldab kasutada erinevaid kompilaatorite ja komplektijate kombinatsioone;
- SourceSet objektidele on lisatud meetod all_dependencies() koos meetodiga all_sources();
- run_project_tests.py-sse on lisatud valik "âonly" testide valikuliseks kĂ€ivitamiseks (nĂ€iteks "python run_project_tests.py âonly fortran python3");
- find_program() funktsioonis on lisatud vĂ”imalus otsida ainult vajalikke versioone programmi (version antakse kindlaks programmi kĂ€ivitamise kaudu valikuga "âversion");
- SĂŒmbolite eksportimise juhtimiseks funktsioonis shared_module() on lisatud vĂ”imalus vs_module_defs, sarnaselt shared_library() funktsioonile;
- kconfig mooduli vĂ”imalusi on laiendatud, mis nĂŒĂŒd toetab configure_file() sisendi faili mÀÀramiseks;
- configure_file() funktsioonile on lisatud vÔimalus mÀÀrata mitu sisendfaili kÀsitlejatele "command:";
- KĂ€sk «dist» arhiivi loomise jaoks on tĂ”stetud esmaklassiliste kĂ€skude hulka (varem oli kĂ€sk seotud ninja). Lisatud on valik «âformats» loodavate arhiivide tĂŒĂŒpide mÀÀramiseks (nĂ€iteks,
«meson dist âformats=xztar,zip»).
Allikas: opennet.ru
