Опубликован релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.28, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки. Код CMake написан на языке C++ и распространяется под лицензией BSD.
Основные улучшения:
- В генераторы сборочных сценариев для Visual Studio и Ninja добавлена поддержка модулей, определённых в спецификации C++ 20. Поддержка модулей доступна при наличии LLVM/Clang 16, GCC 14-dev или MSVC 14.34.
- Реализована возможности компиляции для GPU NVIDIA кода на языке HIP, используя компилятор NVCC (NVIDIA CUDA Compiler). Добавлена переменная CMAKE_HIP_PLATFORM для выбора платформы GPU для HIP (“amd” или “nvidia”).
- На платформах Apple обеспечена поддержка каталогов “.xcframework”.
- Удалена команда “exec_program()”, объявленная устаревшей в выпуске 3.0. Для запуска процессов следует использовать команду “execute_process()”.
- Файлы, сгенерированные с использованием режима “FILE_SET“, теперь обрабатываются по умолчанию как приватные, что позволяет формировать более эффективный сборочный граф в генераторах Ninja.
- В командах find_library(), find_path() и find_file() отключён поиск в установочных каталогах, полученных из переменной окружения PATH.