Релиз системы сборки CMake 3.9
Состоялся релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.9, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.
CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
Основные улучшения:
- В генераторы сборочных сценариев для Visual Studio 2010+ добавлена поддержка сборки проектов на языке CUDA (ранее CUDA поддерживался только генераторами Makefile и Ninja);
- CMake теперь учитывает особенности стандартов Си/Си++ и связанные с ними мета-функции для компиляторов, вызываемых при указании идентификаторов «Cray», «PGI» и «XL»;
- Представлен модуль «CheckIPOSupported», предназначенный для проверки обеспечения поддержки в инструментарии межпроцедурных оптимизаций (IPO). IPO поддерживаются для компиляторов GCC и Clang;
- В генераторе для Visual Studio 14 2015 учтены изменения инструментария v140, внесённые в очередном обновлении VS 2015. В частности изменён набор значений для настройки GenerateDebugInformation, используемой при включении отладочного режима (-DEBUG) в компоновщике;
- В генераторы для Visual Studio 2010+ добавлена поддержка языка «ASM_NASM», включаемая при установке «nasm»;
- В генераторе «Xcode» появилась поддержка Xcode 9 и возможность создания схем сборки для Xcode, активируемая через переменную «CMAKE_XCODE_GENERATE_SCHEME»;
- Команда add_library () с опцией IMPORTED теперь может использоваться для библиотек объектов (Object Librarie). В команду install (TARGETS) добавлена опция OBJECTS» для указания пути для установки библиотек объектов. В команду install (EXPORT) добавлена поддержка экспорта библиотек объектов;
- Для библиотек объектов реализовано свойство CUDA_PTX_COMPILATION, обеспечивающее компиляцию в файлы .ptx, вместо обычных объектных файлов;
- Добавлено свойство BUILD_WITH_INSTALL_NAME_DIR и связанная с ним одноимённая переменная для управления включением свойства INSTALL_NAME_DIR для исполняемых файлов в сборочном дереве;
- Добавлен модуль GoogleTest, предоставляющий средства для использования функции gtest_add_tests (), независимо от модуля FindGTest;
- Файлы с исходными текстами в зависимых сборках теперь компилируются без ожидания окончания связывания других зависимостей;
- В команды add_custom_command () и file (GENERATE) добавлена поддержка выражений генератора и свойств TARGET_OBJECTS.
© OpenNet