Релиз системы сборки CMake 3.10
Состоялся релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.10, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.
CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
Основные улучшения:
- Добавлена поддержка flang, компилятора для языка Fortran;
- Добавлена поддержка компилятора MSVC для архитектуры ARM64, появившегося в Visual Studio 2017 Update 4;
- Добавлена команда «include_guard ()» для защиты от включения скриптов более одного раза;
- Переработан модуль FindMPI, в котором появилась возможность задания специфичных для языков компонентов, улучшена поддержка Fortran и добавлена поддержка статически связанных реализаций MPI;
- Добавлен модуль FindOpenACC для определения поддержки OpenACC в компиляторе. В настоящее время поддерживаются только компиляторы PGI, GNU и Cray;
- Расширены возможности модуля FindOpenGL, в котором появилась поддержка определения GLVND и EGL в окружении Linux;
- В модуль GoogleTest добавлена команда gtest_discover_tests () для определения тестов на этапе сборки;
- В модуль CPack добавлен генератор FREEBSD с поддержкой пакетного менеджера pkg для FreeBSD. Генератор DEB, настраиваемый модулем CPackDeb, по умолчанию включён в окружении Windows;
- В режиме «cmake -E» появилась поддержка sha1sum, sha224sum, sha256sum, sha384sum и sha512sum.
- В команду file (GENERATE) добавлена возможность задания относительных путей для аргументов OUTPUT и INPUT.
© OpenNet