Релиз системы сборки CMake 3.8

Состоялся релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.8, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.

CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.

Основные улучшения:

  • Добавлена поддержка сборки проектов на языке CUDA через генераторы Makefile и Ninja для Linux, macOS и Windows;
  • Добавлена поддержка сборки проектов на языке C# через генератор сценариев сборки для Visual Studio;
  • В средствах для настройки параметров компилятора (Compile Features) реализована возможность определения мета-флагов, которые изменяют режим работы компилятора в привязке к специфичным языковым стандартам, например, «cxx_std_11» для C++ 11;
  • «Compile Features» теперь учитывает особенности стандарта C++ 17, но набор мета-флагов «cxx_std_17» для него пока остаётся пустым;
  • В «Compile Features» добавлена поддержка особенностей компиляторов Intel C++ версий с 12.1 по 17.0 для UNIX и Windows;
  • В генераторы сценариев сборки для Visual Studio 2013+ в блок «CMAKE_GENERATOR_TOOLSET» добавлена поддержка опции «host=x64» для указания использования 64-разрядного инструментария на 64-разрядных системах;
  • В генераторах для Visual Studio обеспечен импорт в генерируемый проект файлов MSBuild через передачу в target_link_libraries () файлов с расширением .targets;
  • В команду try_compile () добавлена опция для выбора языкового стандарта, который будет использоваться в генерируемом тестовом проекте. В try_compile () также теперь учитывается переменная окружения CMAKE_CXX_STANDARD;
  • Добавлено свойство «BUILD_RPATH» и связанная с ним переменная «CMAKE_BUILD_RPATH», позволяющие указать собственный путь RPATH для сохранения исполняемых файлов в процессе сборки;
  • Добавлено новое выражение генератора »$‹IF: cond, true-value, false-value ›», возвращающее значение «true-value», если условие «cond» истинно (1) или «false-value» — ложно (0);
  • В свойство «COMPILE_FLAGS» добавлена поддержка выражений генератора.

© OpenNet