çelja e sistemit të ndërtimit , i cili përdoret për të ndërtuar projekte të tilla si X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dhe GTK+. Kodi i Meson është shkruar në gjuhën Python dhe nën licencën Apache 2.0.
qëllimi kryesor i zhvillimit të Meson është të sigurojë një shpejtësi të lartë të procesit të ndërtimit në kombinim me lehtësinë dhe thjeshtësinë e përdorimit. Në vend të utilitetit make, si parazgjedhje përdoret mjeti , por është e mundur të përdoren edhe backend të tjerë si xcode dhe VisualStudio. Sistemi përmban një menaxher shumëplatformësh për varësi, që e bën të mundur përdorimin e Meson për ndërtimin e paketave për distribucione. Rregullat e ndërtimit janë të formuluara në një gjuhë të thjeshtë të orientuar nga subjekti, që dallohen për lexueshmërinë e mirë dhe janë të kuptueshme për përdoruesin (sipërmarrësit duhet të kalojnë sa më pak kohë në shkrimin e rregullave).
kross-kompilimi dhe ndërtimi në Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dhe Windows duke përdorur GCC, Clang, Visual Studio dhe kompilatorë të tjerë. Ndërtimi i projekteve në gjuhë të ndryshme programimi, përfshirë C, C++, Fortran, Java dhe Rust është i mundur. Modo i inkrementimit mbështetet, ku vetëm komponentët që lidhen drejtpërdrejt me ndryshimet e bërë që nga ndërtimi i fundit rikonstruktohen. Meson mund të përdoret për të krijuar ndërtime të përsëritshme, ku fillimi i ndërtimit në mjedise të ndryshme prodhon skedarë ekzekutivë krejtësisht identikë.
Ndryshimet kryesore Meson 0.52:
- Mbështetje eksperimentale për Webassembly e shtuar duke përdorur Emscripten si kompilator;
- Mbështetje e përmirësuar dhe e stabilizuar për platformat Illumos dhe Solaris;
- Injorimi i skenarëve të internacionalizimit bazuar në gettext është siguruar në rastin e mungesës së mjetit gettext të instaluar në sistem (më parë, kur përdorej moduli i18n në sisteme pa gettext, shfaqej një gabim);
- Mbështetje për bibliotekat statike është përmirësuar. Problemet e shumta me përdorimin e bibliotekave statike të çinstaluara janë zgjidhur;
- Shtuar mundësia e përdorimit të fjalorëve për caktimin e variablave të mjedisit. Kur thërret environment() si elementin e parë tani mund të specifikosh një fjalor, në të cilin variablat e mjedisit janë të definuar në formën çelës/vlerë. Këto variabla do të transferohen në environment_object si të ishin vendosur individualisht përmes metodës set(). Fjalorët gjithashtu tani mund të kalohen në funksione të ndryshme që mbështesin argumentin "env";
- Shtuar funksioni "runtarget alias_target(target_name, dep1, âŠ)", qĂ« krijon njĂ« objektiv ndĂ«rtimi tĂ« nivelit tĂ« parĂ«, i cili mund tĂ« thirret me backendin pĂ«r ndĂ«rtim tĂ« pĂ«rzgjedhur (pĂ«r shembull, "ninja target_name"). Ky objektiv ndĂ«rtimi nuk ekzekuton asnjĂ« komandĂ«, por siguron ndĂ«rtimin e tĂ« gjitha varĂ«sive;
- Garantuar vendosjen automatikisht të variablit të mjedisit PKG_CONFIG_SYSROOT_DIR kur kryhen ndërtimet ndërshkruese në rast se ka një konfigurim sys_root në seksionin "[properties]";
- Shtuar opsioni "âgdb-path" pĂ«r pĂ«rcaktimin e rrugĂ«s pĂ«r debugin GDB kur specifikohet opsioni "âgdb testname" pĂ«r tĂ« nisur GDB me skenarin e provĂ«s tĂ« pĂ«rcaktuar;
- Shtuar automatikisht përcaktimin e qëllimit të ndërtimit clang-tidy për të nisur këtë linter me të gjitha skedarët burimorë. Qëllimi krijohet në prani të clang-tidy në sistem dhe definicionin në rrënjën e projektit të skedarit «.clang-tidy» (ose «_clang-tidy»);
- Shtuar varĂ«sinĂ« dependency(âblocksâ) pĂ«r pĂ«rdorim nĂ« zgjerimet Clang ;
- Veçuar pamjet e lidhësit dhe compilatorit, duke lejuar përdorimin e kombinimeve të ndryshme të compilatorëve dhe lidhësve;
- Në objektet SourceSet është shtuar metoda all_dependencies() përveç metodës all_sources();
- NĂ« run_project_tests.py Ă«shtĂ« shtuar opsioni «âonly» pĂ«r ekzekutimin selektiv tĂ« testeve (p.sh., «python run_project_tests.py âonly fortran python3»);
- NĂ« funksionin find_program() Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« gjetur vetĂ«m versionet e kĂ«rkuara tĂ« programit (versioni pĂ«rcaktohet pĂ«rmes ekzekutimit tĂ« programit me opsionin «âversion»);
- Për të menaxhuar eksportun e simboleve në funksionin shared_module() në përputhje me shared_library() është shtuar opsioni vs_module_defs;
- Zgjeruar mundësitë e modulit kconfig, i cili tani mbështet configure_file() për të përcaktuar skedarin hyrës;
- Në configure_file() është shtuar mundësia për përcaktimin e disa skedarëve hyrës për trajtuesit «command:»;
- Komanda «dist» pĂ«r krijimin e arkivave Ă«shtĂ« transferuar nĂ« kategorinĂ« e komandave tĂ« nivelit tĂ« parĂ« (mĂ« parĂ« komanda ishte lidhur me ninja). Shtuar opsioni «âformats» pĂ«r tĂ« pĂ«rcaktuar llojet e arkivave tĂ« krijuara (p.sh.,
«meson dist âformats=xztar,zip»).
Burimi: opennet.ru
