Реліз систем складання 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

Додати коментар або відгук