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

botuar lirimin e sistemit të ndërtuar Meson 0.52, 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).

Përkrahet përpiloni dhe ndërtoni në Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, 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.52:

  • Mbështetje eksperimentale e shtuar për Webassembly duke përdorur Emscripten si përpilues;
  • Mbështetja për platformat Illumos dhe Solaris është përmirësuar ndjeshëm dhe është sjellë në gjendje pune;
  • Siguron që skriptet e ndërkombëtarizimit të bazuara në gettext të shpërfillen nëse sistemi nuk e ka të instaluar paketën e veglave gettext (më parë shfaqej një gabim gjatë përdorimit të modulit i18n në sistemet pa gettext);
  • Mbështetje e përmirësuar për bibliotekat statike. Shumë probleme gjatë përdorimit të bibliotekave statike të çinstaluara janë zgjidhur;
  • U shtua aftësia për të përdorur fjalorë për të caktuar variablat e mjedisit. Kur thërrisni mjedisin(), elementi i parë tani mund të specifikohet si një fjalor në të cilin variablat e mjedisit përcaktohen në formën e çelësit/vlerës. Këto variabla do të transferohen në ambient_objekt sikur të ishin vendosur individualisht nëpërmjet metodës set(). Fjalorët gjithashtu mund të kalojnë në funksione të ndryshme që mbështesin një argument "env";
  • Funksioni i shtuar "runtarget alias_target(target_name, dep1, ...)" që krijon një objektiv të ri ndërtimi të nivelit të parë që mund të thirret me bazën e zgjedhur të ndërtimit (p.sh. "ninja target_name"). Ky objektiv ndërtimi nuk ekzekuton asnjë komandë, por siguron që të gjitha varësitë janë ndërtuar;
  • Aktivizoi konfigurimin automatik të ndryshores së mjedisit PKG_CONFIG_SYSROOT_DIR gjatë ndërthurjes nëse ka një cilësim sys_root në seksionin "[properties]";
  • Është shtuar opsioni "--gdb-path" për të përcaktuar shtegun drejt korrigjuesit GDB kur specifikon opsionin "--gdb testname" për të ekzekutuar GDB me skriptin e specifikuar të testit;
  • U shtua zbulimi automatik i objektivit të ndërtimit të rregullt për të drejtuar këtë litar me të gjithë skedarët burimor. Objektivi krijohet nëse clang-tidy është i disponueshëm në sistem dhe skedari ".clang-tidy" (ose "_clang-tidy") është përcaktuar në rrënjën e projektit;
  • U shtua varësia ('blloqe') për përdorim në shtesën Clang Blocks;
  • Pamjet e lidhësit dhe të përpiluesit janë të ndara, duke lejuar përdorimin e kombinimeve të ndryshme të përpiluesve dhe lidhësve;
  • U shtua metoda all_dependencies() në objektet SourceSet përveç metodës all_sources();
  • Në run_project_tests.py, opsioni "--only" është shtuar në testet e ekzekutuara në mënyrë selektive (për shembull, "python run_project_tests.py —only fortran python3");
  • Funksioni find_program() tani ka mundësinë të kërkojë vetëm versionet e kërkuara të një programi (versioni përcaktohet duke ekzekutuar programin me opsionin "-version");
  • Për të kontrolluar eksportimin e simboleve, opsioni vs_module_defs është shtuar në funksionin shared_module(), ngjashëm me shared_library();
  • Moduli kconfig është zgjeruar për të mbështetur configure_file() për të specifikuar një skedar hyrës;
  • U shtua aftësia për të specifikuar skedarë të shumtë hyrës për mbajtësit e “command:” në configure_file();
  • Komanda "dist" për krijimin e një arkivi është zhvendosur në kategorinë e komandave të nivelit të parë (më parë komanda ishte e lidhur me ninja). U shtua opsioni "--formats" për të përcaktuar llojet e arkivave që do të krijohen (për shembull,
    "meson dist -formats=xztar,zip").

Burimi: opennet.ru

Shto një koment