Состоялся релиз кроссплатформенного открытого генератора сценариев сборки 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" добавлена поддержка выражений генератора.


Источник: http://www.opennet.ru/opennews/art.shtml?num=46363