CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
Основные изменения:
- В cmake-configure-log обеспечен вывод событий из команд
find_package(), find_path(), find_file(), find_library() и find_program() при их первом вызове, когда результат меняет статус с "не найден" на "найден". - В команду cmake_pkg_config() добавлена поддержка подкоманд IMPORT и POPULATE для работы с зависимостями на базе pkg-config.
- Добавлена переменная CMAKE_FIND_REQUIRED, выставляющая режим REQUIRED в командах find_package(), find_path(), find_file(), find_library() и find_program(). Для игнорирования значения переменной в командах может применяться ключевое слово OPTIONAL.
- В модулях FindBLAS и FindLAPACK реализована поддержка NVPL (NVIDIA
Performance Libraries). - В операциях string(REGEX MATCHALL), string(REGEX REPLACE) и
list(TRANSFORM REPLACE) реализована поддержка метки начала ("^") в регулярных выражениях. - Выражение генератора TARGET_PROPERTY теперь охватывает свойства LINK_LIBRARIES и INTERFACE_LINK_LIBRARIES.
Источник: https://www.opennet.ru/opennews/art.shtml?num=63713
(opennet.ru, мини-новости)