Рэліз сістэм зборкі 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 (Heterogeneous-Computing Interface for Portability), дыялекту мовы 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.
  • Ва ўтыліту cmake дададзена опцыя «—toolchain. > для вызначэння шляху да інструментара.
  • Забяспечана падсвятленне тыпаў паведамленняў, якія выводзяцца на тэрмінал.
  • Дададзена падтрымка кампілятара Fujitsu.
  • У камандзе «foreach()» забяспечана ізаляцыя зменных цыклу ўсярэдзіне цыкла.

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

У сістэму ўбудаваны шматплатформавы апрацоўшчык залежнасцяў, які дазваляе выкарыстоўваць Meson для зборкі пакетаў для дыстрыбутываў. Правілы зборкі задаюцца на спрошчанай прадметна-арыентаванай мове, адрозніваюцца добрай чытальнасцю і зразумелыя карыстачу (па задумцы аўтараў распрацоўшчык павінен марнаваць мінімум часу на напісанне правіл). Падтрымліваецца інкрыментальны рэжым зборкі, пры якім перазбіраюцца толькі кампаненты, напрамую звязаныя са зменамі, унесенымі з моманту мінулай зборкі. Meson можна выкарыстоўваць для фармавання паўтаральных зборак, пры якіх запуск зборкі ў розных асяродках прыводзіць да генерацыі цалкам ідэнтычных выкананых файлаў.

Асноўныя навіны Meson 0.59:

  • Дададзена падтрымка мовы Cython (пашыраны варыянт Python, накіраваны на спрашчэнне інтэграцыі з кодам на мове Сі).
  • Дададзеныя ключавыя словы "unescaped_variables" і "unescaped_uninstalled_variables" для вызначэння зменных у pkgconfig без экранавання прабелаў сімвалам "\".
  • Дададзена падтрымка wrc (Wine Resource Compiler).
  • Рэалізавана магчымасць генерацыі праектаў для Visual Studio 2012 і Visual Studio 2013.
  • Усе каманды, звязаныя з апрацоўкай субпраектаў, зараз па змаўчанні запускаюць кожны субпраект паралельна. Лік раўналежна якія працуюць працэсаў вызначаецца параметрам «-num-processes».

Крыніца: opennet.ru

Дадаць каментар