Издание на системот за изградба на Meson 0.52

објавено изградба на ослободување на системот Мезон 0.52, кој се користи за изградба на проекти како што се X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK+. Мезонскиот код е напишан во Python и испорачани лиценциран под Apache 2.0.

Клучната цел на развојот на Meson е да обезбеди голема брзина на процесот на склопување во комбинација со практичност и леснотија на користење. Наместо алатката make, стандардната изградба го користи комплетот со алатки Нинџа, но исто така е можно да се користат и други задни делови, како што се xcode и VisualStudio. Системот има вграден управувач за зависност од повеќе платформи кој ви овозможува да користите Meson за да изградите пакети за дистрибуции. Правилата за склопување се специфицирани на поедноставен јазик специфичен за доменот, се многу читливи и разбирливи за корисникот (како што е предвидено од авторите, развивачот треба да потроши минимум време за пишување правила).

Поддржано вкрстено компајлирајте и градете на Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows користејќи GCC, Clang, Visual Studio и други компајлери. Можно е да се градат проекти на различни програмски јазици, вклучувајќи C, C++, Fortran, Java и Rust. Поддржан е режим на инкрементално градење, во кој се обновуваат само компонентите директно поврзани со промените направени од последната изработка. Meson може да се користи за генерирање на повторливи изданија, во кои извршувањето на изградбата во различни средини резултира со генерирање на целосно идентични извршни датотеки.

Главните иновации Мезон 0.52:

  • Додадена е експериментална поддршка за Webassembly користејќи Emscripten како компајлер;
  • Поддршката за платформите Illumos и Solaris е значително подобрена и доведена во работна состојба;
  • Можно е да се игнорираат скриптите за интернационализација базирани на gettext ако системот ги нема инсталирано алатките за gettext (претходно беше прикажана грешка при користење на модулот i18n на системи без gettext);
  • Подобрена поддршка за статични библиотеки. Многу проблеми при користење на деинсталирани статични библиотеки се решени;
  • Додадена е можност за користење речници за доделување променливи на околината. Кога се повикува околината(), првиот елемент сега може да се назначи како речник во кој променливите на околината се дефинирани во форма на клуч/вредност. Овие променливи ќе бидат префрлени на environment_object како да се поединечно поставени преку методот set(). Речниците, исто така, сега може да се пренесат на различни функции кои поддржуваат аргумент „env“;
  • Додадена е функција „runtarget alias_target(target_name, dep1, ...)“ која создава нова градба цел од прво ниво што може да се повика со избраниот build backend (на пр. „ninja target_name“). Оваа цел за изградба не извршува никакви команди, но гарантира дека се изградени сите зависности;
  • Овозможено автоматско поставување на променливата на околината PKG_CONFIG_SYSROOT_DIR за време на вкрстената компилација ако има поставка sys_root во делот „[properties]“;
  • Додадена е опцијата „--gdb-path“ за одредување на патеката до GDB дебагерот кога се одредува опцијата „--gdb testname“ за да се изврши GDB со наведената тест скрипта;
  • Додадено е автоматско откривање на целта за градење со ѕвечкање уредно за да се стартува овој ланец со сите изворни датотеки. Целта се креира ако clang-tidy е достапна во системот и датотеката „.clang-tidy“ (или „_clang-tidy“) е дефинирана во коренот на проектот;
  • Додадена е зависност ('блокови') за употреба во наставката Clang Блокови;
  • Погледите на поврзувачот и компајлерот се одвоени, овозможувајќи да се користат различни комбинации на компајлери и поврзувачи;
  • Додаден метод all_dependencies() на објекти SourceSet како додаток на методот all_sources();
  • Во run_project_tests.py, опцијата „--only“ е додадена на селективно извршените тестови (на пример, „python run_project_tests.py — only fortran python3“);
  • Функцијата find_program() сега има можност да бара само потребни верзии на програма (верзијата се одредува со извршување на програмата со опцијата „-version“);
  • За да се контролира извозот на симболи, опцијата vs_module_defs е додадена во функцијата shared_module(), слично на shared_library();
  • Модулот kconfig е проширен за да поддржува configure_file() за одредување влезна датотека;
  • Додадена е способност да се специфицираат повеќе влезни датотеки за ракувачите „command:“ во configure_file();
  • Командата „dist“ за создавање архива е преместена во категоријата команди од прво ниво (претходно командата беше врзана за нинџа). Додадена е опцијата „--formats“ за да се дефинираат типовите на архиви што треба да се креираат (на пример,
    „мезонски дист -формати=xztar,zip“).

Извор: opennet.ru

Додадете коментар