Објавување на системи за изградба CMake 3.21 и Meson 0.59

Презентирано е изданието на генератор на скрипти за отворена градба на повеќе платформи CMake 3.21, кој делува како алтернатива на Autotools и се користи во проекти како KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Кодот CMake е напишан во C++ и се дистрибуира под лиценцата BSD.

CMake е познат по тоа што обезбедува едноставен јазик за скриптирање, средство за проширување на функционалноста преку модули, минимален број на зависности (без врзување за M4, Perl или Python), поддршка за кеширање, присуство на алатки за вкрстена компилација, поддршка за генерирање градба датотеки за широк опсег на системи за градење и компајлери, присуство на ctest и cpack алатки за дефинирање на тест скрипти и градење пакети, cmake-gui алатка за интерактивно поставување на параметри за градење.

Главни подобрувања:

  • Додадена е целосна поддршка за програмскиот јазик Хетероген-компјутерски интерфејс за преносливост (HIP), дијалект на јазикот C++ кој има за цел да го олесни претворањето на CUDA апликациите во пренослив C++ код.
  • Додаден е генератор на скрипти за градба за Visual Studio 17 2022 година, базиран на Visual Studio 2022 Preview 1.1.
  • Генераторите на скрипти за изработка на Makefile и Ninja ги додадоа својствата C_LINKER_LAUNCHER и CXX_LINKER_LAUNCHER, кои може да се користат за стартување на помошни алатки што го стартуваат поврзувачот, како што се статичките анализатори. Генераторот ќе ги изврши наведените алатки, пренесувајќи им го името на поврзувачот и неговите аргументи.
  • Во својствата „C_STANDARD“ и „OBJC_STANDARD“, како и во алатките за поставување параметри на компајлерот (Compile Features), додадена е поддршка за спецификациите C17 и C23.
  • Додадена е опцијата „--toolchain > во алатката cmake за да се одреди патеката до синџирот на алатки.
  • Видовите пораки прикажани на терминалот се означени.
  • Додадена е поддршка за компајлерот Fujitsu.
  • Командата „foreach()“ осигурува дека променливите на јамката се изолирани во една јамка.

Дополнително, можеме да го забележиме објавувањето на системот за градење Meson 0.59, кој се користи за изградба на проекти како што се X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Кодот на Месон е напишан во Python и е лиценциран под лиценцата Apache 2.0. Поддржува вкрстена компилација и градење на Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows користејќи GCC, Clang, Visual Studio и други компајлери. Можно е да се градат проекти на различни програмски јазици, вклучувајќи C, C++, Fortran, Java и Rust. Наместо алатката за правење, при изградбата стандардно се користи приборот за алатки Ninja, но може да се користат и други задни делови како што се xcode и VisualStudio.

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

Главните иновации на Meson 0.59:

  • Додадена е поддршка за јазикот Cython (напредна верзија на Python насочена кон поедноставување на интеграцијата со C код).
  • Додадени се клучни зборови „unescaped_variables“ и „unescaped_uninstalled_variables“ за дефинирање на променливите во pkgconfig без бегство на празни места со знакот „\“.
  • Додадена е поддршка за wrc (Wine Resource Compiler).
  • Способноста за генерирање проекти за Visual Studio 2012 и Visual Studio 2013 е имплементирана.
  • Сите команди поврзани со подпроектот сега стандардно го извршуваат секој подпроект паралелно. Бројот на паралелни процеси се одредува со параметарот „--num-processes“.

Извор: opennet.ru

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