ç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).
Podhet ndihmĂ« pĂ«r ndĂ«rtim tĂ« kryqĂ«zuar dhe ndĂ«rtim nĂ« Linux, macOS dhe Windows duke pĂ«rdorur GCC, Clang, Visual Studio dhe kompjilues tĂ« tjerĂ«. ĂshtĂ« e mundur ndĂ«rtimi i projekteve nĂ« gjuhĂ« tĂ« ndryshme programimi, duke pĂ«rfshirĂ« C, C++, Fortran, Java dhe Rust. ĂshtĂ« mbĂ«shtetur njĂ« mod pĂ«r ndĂ«rtim inkremental, ku rollet rindĂ«rtohen vetĂ«m pĂ«r komponentĂ« tĂ« lidhur drejtpĂ«rdrejt me ndryshimet e bĂ«ra qĂ« nga ndĂ«rtimi i fundit. Mur Ă«shtĂ« njĂ« mjet pĂ«r tĂ« formuar ndĂ«rtimet e pĂ«rsĂ«ritshme, ku ekzekutimi i ndĂ«rtimit nĂ« mjedise tĂ« ndryshme sjell nĂ« gjenerimin e skedarĂ«ve ekzekutivĂ« plotĂ«sisht identike.
Ndryshimet kryesore Meson 0.51:
- Shtuar mbështetje për ndërtimin e qartë të projekteve ekzistuese, të cilat përdorin skenarët ndërtimorë CMake. Tani, Mur mund të ndërtojë drejtpërdrejt nënprojekte të thjeshta (si bibliotekat e vetme) duke përdorur modul CMake, në mënyrë të ngjashme me nënprojektet e zakonshme (përfshirë nënprojektet CMake që mund të vendosen në katalogun subprojects);
- Për të gjithë kompajlerët e aplikuar, është përfshirë testimi paraprak përmes ndërtimit dhe ekzekutimit të skedave testuese më të thjeshta (kontrolli i shëndetit), pa e kufizuar veten vetëm në testimin e flagjeve të specifikuara nga përdoruesi për kompajlerët e kryqëzuar (tani kontrollohen edhe kompajlerët vendas për platformën aktuale).
- Shtuar mundësinë e përcaktimit të opsioneve të komandës së linjës, të aplikuara gjatë ndërtimit të kryqëzuar, duke e lidhur atë përmes caktimit të prefixit të platformës para opsionit. Më parë, opsionet e komandës së linjës mbuloheshin vetëm për ndërtimin për platformën lokale dhe nuk mund të specifikoheshin për ndërtim të kryqëzuar. Tani, opsionet e komandës së linjës aplikohet pavarësisht nëse ndërtimi është vendas apo i kryqëzuar, duke siguruar që për ndërtimet vendase dhe të kryqëzuara të arrihet rezultati identik;
- Shtuar mundĂ«sinĂ« e specifikimit tĂ« flagut "âcross-file" mĂ« shumĂ« se njĂ« herĂ« nĂ« komandĂ«n e linjĂ«s pĂ«r tĂ« renditur disa cross-file;
- Shtuar mbështetje për kompajlerin ICL (Intel C/C++ Compiler) për platformën Windows (ICL.EXE dhe ifort);
- Shtuar mbështetje fillestare për mjetin për CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
- NĂ« objektin "dependency" Ă«shtĂ« shtuar metoda "get_variable", e cila lejon marrjen e vlerĂ«s sĂ« njĂ« variable pa marrĂ« parasysh llojin e varĂ«sisĂ« aktuale (p.sh., dep.get_variable(pkg-config: âvar-nameâ, cmake: âCOP_VAR_NAME));
- Shtuar njĂ« argument tĂ« ri pĂ«r parametrat e ndĂ«rtimit tĂ« destinacionit â "link_language" pĂ«r tĂ« pĂ«rcaktuar qartĂ« gjuhĂ«n qĂ« pĂ«rdoret gjatĂ« thirrjes sĂ« linker-it. PĂ«r shembull, programi kryesor nĂ« Fortran mund tĂ« thĂ«rrasĂ« kodin nĂ« C/C++, i cili do tĂ« çonte nĂ« zgjedhjen automatikisht tĂ« C/C++, ndĂ«rsa duhet tĂ« pĂ«rdoret linker-i i Fortran;
- Ndryshuar përpunimi i flagjeve të përpunuesit CPPFLAGS. Nëse më parë Mur ruante veçmas CPPFLAGS dhe flagjet e veçanta të gjuhëve të kompjilimit (CFLAGS, CXXFLAGS), tani ato përpunohen së bashku dhe flagjet e listuara në CPPFLAGS aplikohen si një burim tjetër flagjesh të kompjilimit për gjuhët që i mbështesin;
- Dalja custom_target dhe custom_target[i] tani mund të përdoren si argumente në operacionet link_with dhe link_whole;
- NĂ« gjeneratoret Ă«shtĂ« shtuar mundĂ«sia e caktimit tĂ« varĂ«sive tĂ« tjera pĂ«rmes opsionit "depends" (p.sh., generator(program_runner, output: [â@BASENAME@.câ], depends: exe));
- Në find_library është shtuar opsioni static për të mbuluar vetëm bibliotekat e lidhura statikisht;
- Për python.find_installation është shtuar mundësia e përcaktimit të të pranishmit të një moduli të caktuar Python për një version të caktuar të Python;
- Shtuar një modul të ri unstable-kconfig për përpunimin e skedave kconfig;
- Shtuar komandën e re "subprojects foreach", e cila pranon një komandë me argumente dhe e ekzekuton në të gjitha katalogët e nënprojekteve;
Burimi: opennet.ru
