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».

Source: opennet.ru

Комментарий кошуу