6 декабря состоялся выпуск 3.28 кроссплатформенной системы сборки CMake, написанной на языке C++ и распространяемой по лицензии BSD-3.
Список основных изменений:
- улучшена поддержка модулей C++20 в генераторах
Ninja
иVisual Studio
(VS 2022 и новее). Подробности вcmake-cxxmodules(7)
; - код языка
HIP
для GPU NVIDIA теперь может быть скомпилирован компиляторомnvcc
(NVIDIA CUDA Compiler). Подробности в описании переменнойCMAKE_HIP_PLATFORM
; - удалена команда
exec_program()
, признанная устаревшей вCMake 3.0
. Вместо неё следует использоватьexecute_process()
; - сгенерированные файлы в целях, использующих наборы файлов, теперь по умолчанию считаются приватными. Генерируемые публичные заголовочные файлы должны быть указаны с помощью наборов файлов. Это позволяет создавать более эффективные графы сборки для Ninja. Подробности в политике
CMP0154
; - команды
find_library()
,find_path()
иfind_file()
больше не ищут в префиксах установки, полученных из переменной окруженияPATH
. Это поведение было добавлено в CMake 3.3 для поддержки сред разработки MSYS и MinGW («MSYSTEM») в Windows и могло искать нежелательные префиксы, которые случайно оказались вPATH
по каким-либо причинам. - добавлена поддержка директорий
.xcframework
для платформ Apple.