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

29 марта 2018 года

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

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

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

  • В генератор сборочных файлов Ninja добавлена поддержка компиляторов

TI C/C++;

  • В генераторах для Visual Studio появилась возможность использования условного выражения COMPILE_LANGUAGE при определении значений COMPILE_DEFINITIONS, INCLUDE_DIRECTORIES, COMPILE_OPTIONS и file(GENERATE). В генераторе Xcode поддержка условного выражения COMPILE_LANGUAGE обеспечена для COMPILE_DEFINITIONS и

INCLUDE_DIRECTORIES (в COMPILE_OPTIONS и file(GENERATE) уже поддерживалась ранее);

  • Компанды add_library() и и add_executable() теперь могут вызываться без наличия исходных текстов с расчётом, что код будет добавлен позднее при помощи команды target_sources();
  • В команду target_compile_definitions() добавлено свойство INTERFACE_COMPILE_DEFINITIONS, в команду target_compile_features() - INTERFACE_COMPILE_FEATURES, в target_compile_options() - INTERFACE_COMPILE_OPTIONS, в target_include_directories() - INTERFACE_INCLUDE_DIRECTORIES, в target_sources() - INTERFACE_SOURCES, в target_link_libraries() - INTERFACE_LINK_LIBRARIES;
  • В свойстве исходных файлов «COMPILE_DEFINITIONS» добавлена поддержка выражений генератора;
  • Свойство исходных файлов COMPILE_OPTIONS добавлено в список опций, передаваемых компилятору;
  • При использовании свойств AUTOMOC или AUTOUIC, CMake теперь параллельно запускает несколько процессов moc или uic для сокращения времени сборки. Число процессов определяется через переменную CMAKE_AUTOGEN_PARALLEL и свойство AUTOGEN_PARALLEL (по умолчанию выставляются в значения, соответствующие числу CPU).

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

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

Комментарии

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