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

Материал из Викиновостей, свободного источника новостей

20 июля 2019 года

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

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

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

  • В генератор сборочных сценариев на базе инструментария Ninja добавлена начальная поддержка языка Swift, развиваемого компанией Apple;
  • Добавлена поддержка варианта компилятора Clang для Windows, осуществляющего сборку с ABI MSVC, но использующего опции командой строки в стиле GNU;
  • Добавлены переменные CMAKE_MSVC_RUNTIME_LIBRARY и MSVC_RUNTIME_LIBRARY для выбора runtime-библиотек, используемых компиляторами на базе ABI MSVC (MS Visual Studio);
  • Для компиляторов, подобных MSVC, в CMAKE__FLAGS по умолчанию прекращено перечисление флагов управления выводом предупреждений, таких как «/W3»;
  • Добавлено выражение генератора «COMPILE_LANG_AND_ID:» для определения опций компилятора для целевых файлов, применяющих переменные CMAKE__COMPILER_ID и LANGUAGE для каждого файла с кодом;
  • В выражения генератора C_COMPILER_ID, CXX_COMPILER_ID,

CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID и PLATFORM_ID добавлена поддержка сопоставления одного значения со списком, элементы в котором разделены запятой;

  • Добавлена переменная CMAKE_FIND_PACKAGE_PREFER_CONFIG, при которой вызов find_package() будет в первую очередь выполнять поиск файла конфигурации пакета, даже если доступен модуль поиска;
  • Для интерфейсных библиотек добавлена поддержка установки свойств PUBLIC_HEADER и PRIVATE_HEADER, задаваемые которыми заголовки могут устанавливаться при помощи команды install(TARGETS) через передачу аргументов PUBLIC_HEADER и PRIVATE_HEADER;
  • Добавлена переменная CMAKE_VS_JUST_MY_CODE_DEBUGGING и целевое свойство VS_JUST_MY_CODE_DEBUGGING для включения режима «Just My Code» в отладчике Visual Studio при компиляции с использованием MSVC cl 19.05 и более новых версий;
  • Переработан модуль FindBoost, который теперь более целостно отрабатывает в режимах Config и Module при наличии других модулей поиска;
  • В команду message() добавлена поддержка типов NOTICE, VERBOSE,

DEBUG и TRACE;

  • Команда «export(PACKAGE)» теперь ничего не делает пока явно не будет включена через переменную CMAKE_EXPORT_PACKAGE_REGISTRY.

Источники[править]

Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Релиз системы сборки CMake 3.15», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.