Релиз системы сборки 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.