CMake 3.17.0 kūrimo sistemos išleidimas

Įvesta kelių platformų atvirojo kūrimo scenarijų generatoriaus išleidimas CMake 3.17, kuri veikia kaip alternatyva Autotools ir yra naudojama tokiuose projektuose kaip KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ir Blender. CMake kodas parašytas C++ kalba ir platinamas pagal BSD licenciją.

„CMake“ pasižymi paprasta scenarijų kalba, funkcionalumo išplėtimu per modulius, minimaliu priklausomybių skaičiumi (be M4, Perl ar Python), talpyklos palaikymu, kryžminio kompiliavimo įrankių buvimu, kūrimo palaikymu. failai, skirti įvairioms kūrimo sistemoms ir kompiliatoriams, buvimo ctest ir cpack priemonės, skirtos apibrėžti bandomuosius scenarijus ir kūrimo paketus, cmake-gui įrankis, skirtas interaktyviai nustatyti kūrimo parametrus.

pagrindinis patobulinimai:

  • Добавлен новый генератор сборочных сценариев на базе инструментария Ninja — «Ninja Multi-Config», отличающийся от старого генератора возможностью обработки за раз сразу нескольких сборочных конфигураций.
  • В генераторе сборочных сценариев для Visual Studio pasirodė возможность определения файлов с исходными текстами, привязанных к каждой конфигурации (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».

Šaltinis: opennet.ru

Добавить комментарий