Релиз системы сборки CMake 3.28

Опубликован релиз кроссплатформенного открытого генератора сценариев сборки 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.
Release. Ссылка here.