Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.21, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.
CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
Основные улучшения:
В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил). Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.
Основные новшества Meson 0.59:
Источник статьи: https://www.opennet.ru/opennews/art.shtml?num=55503
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 <path/to/file>" для определения пути к инструментарию.
- Обеспечена подсветка типов сообщений, выводимых на терминал.
- Добавлена поддержка компилятора Fujitsu.
- В команде "foreach()" обеспечена изоляция переменных цикла внутри цикла.
В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать 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".
Источник статьи: https://www.opennet.ru/opennews/art.shtml?num=55503