Lëshimi i sistemit të ndërtimit të Meson 0.51

botuar lirimin e sistemit të ndërtuar Meson 0.51, i cili përdoret për të ndërtuar projekte si X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dhe GTK+. Kodi Meson është shkruar në Python dhe furnizuar licencuar sipas Apache 2.0.

Qëllimi kryesor i zhvillimit të Meson është të sigurojë shpejtësi të lartë të procesit të montimit të kombinuar me komoditetin dhe lehtësinë e përdorimit. Në vend të mjetit make, ndërtimi i paracaktuar përdor paketën e veglave Ninja, por është gjithashtu e mundur të përdoren mbështetëse të tjera, si xcode dhe VisualStudio. Sistemi ka një mbajtës të varësisë me shumë platforma të integruar që ju lejon të përdorni Meson për të ndërtuar paketa për shpërndarje. Rregullat e asamblesë janë të specifikuara në një gjuhë të thjeshtuar specifike për domenin, janë shumë të lexueshme dhe të kuptueshme nga përdoruesi (siç synohet nga autorët, zhvilluesi duhet të shpenzojë një minimum kohë për të shkruar rregullat).

Mbështetet ndërthurja dhe ndërtimi në Linux, macOS dhe Windows duke përdorur GCC, Clang, Visual Studio dhe përpilues të tjerë. Është e mundur të ndërtohen projekte në gjuhë të ndryshme programimi, duke përfshirë C, C++, Fortran, Java dhe Rust. Mbështetet modaliteti i ndërtimit në rritje, në të cilin rindërtohen vetëm komponentët që lidhen drejtpërdrejt me ndryshimet e bëra që nga ndërtimi i fundit. Meson mund të përdoret për të gjeneruar ndërtime të përsëritshme, në të cilat ekzekutimi i ndërtimit në mjedise të ndryshme rezulton në gjenerimin e skedarëve të ekzekutueshëm plotësisht identikë.

Kryesore risitë Meson 0.51:

  • Mbështetje e shtuar për ndërtimin transparent të projekteve ekzistuese që përdorin skriptet e ndërtimit CMake. Meson tani mund të ndërtojë drejtpërdrejt nënprojekte të thjeshta (si bibliotekat e vetme) duke përdorur modulin CMake, të ngjashëm me nënprojektet standarde (duke përfshirë nënprojektet CMake mund të vendosen në direktorinë e nënprojekteve);
  • Për të gjithë përpiluesit e përdorur, testimi paraprak përfshihet përmes montimit dhe ekzekutimit të skedarëve të thjeshtë të provës (kontrolli i shëndetit), duke mos u kufizuar në testimin e flamujve të specifikuar nga përdoruesi për ndër-përpiluesit (tani e tutje, përpiluesit vendas në platformën aktuale kontrollohen gjithashtu) .
  • U shtua aftësia për të përcaktuar opsionet e linjës së komandës të përdorura gjatë përpilimit të kryqëzuar, me lidhje duke specifikuar një prefiks platforme përpara opsionit. Më parë, opsionet e linjës së komandës mbulonin vetëm ndërtimet e platformës vendase dhe nuk mund të specifikoheshin për përpilim të kryqëzuar. Opsionet e linjës së komandës tani zbatohen pavarësisht nëse po ndërtoni në mënyrë origjinale ose të ndërthurur, duke siguruar që ndërtimet vendase dhe ndër-ndërtuese të prodhojnë rezultate identike;
  • U shtua aftësia për të specifikuar flamurin "--cross-file" më shumë se një herë në vijën e komandës për të renditur skedarë të shumtë të kryqëzuar;
  • Mbështetje e shtuar për përpiluesin ICL (Intel C/C++ Compiler) për platformën Windows (ICL.EXE dhe ifort);
  • U shtua mbështetje fillestare e paketës së veglave për CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Metoda "get_variable" është shtuar në objektin "varësi", e cila ju lejon të merrni vlerën e një ndryshore pa marrë parasysh llojin e varësisë aktuale (për shembull, dep.get_variable(pkg-config: 'var- emri', cmake : 'COP_VAR_NAME));
  • U shtua një argument i ri i opsioneve të asamblesë së synuar, "link_language", për të specifikuar në mënyrë eksplicite gjuhën e përdorur kur thirret lidhësi. Për shembull, një program kryesor Fortran mund të thërrasë kodin C/C++, i cili automatikisht do të zgjidhte C/C++ kur duhet të përdoret lidhësi Fortran;
  • Trajtimi i flamujve të paraprocesorit CPPFLAGS është ndryshuar. Ndërsa Meson ruante më parë CPPFLAGS dhe flamuj përpilimi specifik për gjuhën (CFLAGS, CXXFLAGS) veçmas, ato tani përpunohen në mënyrë të pandashme dhe flamujt e listuar në CPPFLAGS përdoren si një burim tjetër i flamujve të përpilimit për gjuhët që i mbështesin;
  • Prodhimi i custom_target dhe custom_target[i] tani mund të përdoret si argumente në operacionet link_with dhe link_whole;
  • Gjeneratorët tani kanë mundësinë të specifikojnë varësi shtesë duke përdorur opsionin "varet" (për shembull, gjenerator (program_runner, output: [‘@[email mbrojtur]'], varet: exe));
  • U shtua një opsion statik te find_library për të lejuar kërkimin të përfshijë vetëm biblioteka të lidhura statikisht;
  • Për python.find_installation, është shtuar aftësia për të përcaktuar praninë e një moduli të dhënë Python për një version specifik të Python;
  • U shtua moduli i ri unstable-kconfig për analizimin e skedarëve kconfig;
  • U shtua një komandë e re “nënprojektet foreach”, e cila merr një komandë me argumente dhe e ekzekuton atë në të gjitha drejtoritë e nënprojekteve;

Burimi: opennet.ru

Shto një koment