Релиз системы сборки CMake 3.14
Состоялся релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.14, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.
CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
- Добавлена поддержка кросс-компиляции для iOS, tvOS и watchOS с использованием простых файлов toolchain;
- Добавлен экспериментальный генератор сборочных сценариев для Visual Studio 16 2019 (протестирован в Visual Studio 2019 Preview 4). Новый генератор сильно отличается от генераторов для других версий Visual Studio и не поддерживает указание целевой платформы в имени генератора (платформа передается только через переменную окружения CMAKE_GENERATOR_PLATFORM). Целевая платформа по умолчанию выбирается на основании платформы текущего окружения (хост-платформы);
- В генератор "Green Hills MULTI" добавлена поддержка библиотеки объектов (Object Library), возможность переименования целевых платформ и изменения свойств вывода;
- Добавлены переменные "CMAKE_BUILD_RPATH_USE_ORIGIN" и "BUILD_RPATH_USE_ORIGIN", позволяющие использовать относительные пути для runtime (RPATH), что полезно для организации повторяемых сборок;
- В команду "install(TARGETS)" добавлена возможность определения каталогов для установки по умолчанию в зависимости от типа целевых платформ, без использования переменной DESTINATION. В команды "install(FILES)" и "install(DIRECTORY)" добавлены новые параметры для установки в привязке к типу файлов. Данные о каталогах основываются на переменных, выставляемых модулем GNUInstallDirs, и встроенных значений по молчанию;
- В команды "install(CODE)" и "install(SCRIPT)" добавлена поддержка выражений генератора;
- В команду "if" добавлена возможность проверки переменных из кэша, определенных при помощи выражения "DEFINED CACHE{VAR}";
- В сборочный режим "cmake --build" добавлена поддержка опций "--verbose" и "-v". В команду "cmake -E compare_files" добавлена опция "--ignore-eol" для игнорирования маркеров конца строки (LF или CRLF) при сравнении;
- Прекращена поддержка запуска CMake в Windows XP и Windows Vista, для работы на платформе Windows теперь требуется как минимум Windows 7.