Објавување на системот за изградба на CMake 3.17.0

Воведени издавање на генератор на скрипти со отворена градба меѓу-платформи CMake 3.17, кој делува како алтернатива на Autotools и се користи во проекти како KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Кодот CMake е напишан во C++ и се дистрибуира под лиценцата BSD.

CMake е познат по тоа што обезбедува едноставен јазик за скриптирање, средство за проширување на функционалноста преку модули, минимален број на зависности (без врзување за M4, Perl или Python), поддршка за кеширање, присуство на алатки за вкрстена компилација, поддршка за генерирање градба датотеки за широк опсег на системи за градење и компајлери, присуство на ctest и cpack алатки за дефинирање на тест скрипти и градење пакети, cmake-gui алатка за интерактивно поставување на параметри за градење.

Главните подобрувања:

  • Добавлен новый генератор сборочных сценариев на базе инструментария Ninja — «Ninja Multi-Config», отличающийся от старого генератора возможностью обработки за раз сразу нескольких сборочных конфигураций.
  • В генераторе сборочных сценариев для Visual Studio се појави возможность определения файлов с исходными текстами, привязанных к каждой конфигурации (per-config sources).
  • В средства для настройки параметров компилятора (Compile Features) добавлена возможность задания мета-параметров для CUDA («cuda_std_03», «cuda_std_14» и т.п).
  • Добавлены переменные «CMAKE_CUDA_RUNTIME_LIBRARY» и «CUDA_RUNTIME_LIBRARY» для выбора типа runtime-библиотек при использовании CUDA.
  • Добавлен модуль «FindCUDAToolkit» для определения доступного в системе инструментария CUDA без включения языка CUDA.
  • В утилиту cmake добавлена команда «—debug-find» для вывода дополнительной читаемой диагностики при выполнении операций поиска. Для аналогичных целей добавлена переменная CMAKE_FIND_DEBUG_MODE.
  • В модуль «FindCURL» добавлена поддержка поиска инструментария CURL при помощи генерируемых cmake файлов конфигурации «CURLConfig.cmake». Для отключения указанного поведения предусмотрена переменная CURL_NO_CURL_CMAKE.
  • В модуль FindPython добавлена возможность поиска компонентов Python в виртуальных окружениях, управляемых при помощи «conda».
  • В утилиту ctest добавлены опции «—no-tests=[error|ignore]» для определения поведения в случае отсутствия тестов и «—repeat» для задания условий повторного запуска тестов (until-pass, after-timeout).
  • Обеспечен перенос свойств сборочной цели INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES и INTERFACE_LINK_DEPENDS в числе внутренних зависимостей статически собираемых библиотек.
  • При использовании инструментария MinGW по умолчанию отключён поиск DLL-файлов командой find_library (вместо этого по умолчанию осуществляется попытка импортирования библиотек «.dll.a»).
  • Логика выбора утилиты ninja в генераторе Ninja теперь не зависит от названия исполняемого файла — используется первая попавшаяся утилита ninja-build, ninja или samu, найденная в путях, определённых через переменную окружения PATH.
  • В утилиту cmake добавлена команда «-E rm», которую можно использовать для удаления файлов и каталогов вместо раздельных команд «-E remove» и «-E remove_directory».

Извор: opennet.ru

Додадете коментар