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

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

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

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

  • Почетната јазична поддршка е додадена на генератор на скрипти за градење базирани на Ninja Свифт, развиен од Apple;
  • Додадена е поддршка за варијанта на компајлерот Clang за Windows што се гради со MSVC ABI, но користи опции на командната линија во стилот на GNU;
  • Додадени се променливите CMAKE_MSVC_RUNTIME_LIBRARY и MSVC_RUNTIME_LIBRARY за избор на библиотеки за траење што ги користат компајлери врз основа на MSVC ABI (MS Visual Studio);
  • За компајлери како MSVC, CMAKE__FLAGS стандардно престанува да наведува предупредувачки контролни знаменца како „/W3“;
  • Додаден е генераторски израз „COMPILE_LANG_AND_ID:“ за да се дефинираат опциите на компајлерот за целните датотеки, користејќи ги променливите CMAKE__COMPILER_ID и LANGUAGE за секоја датотека со код;
  • Во изразите на генераторот C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID и PLATFORM_ID додадоа поддршка за совпаѓање на една вредност со листа чии елементи се одделени со запирка;

  • Додадена е променлива CMAKE_FIND_PACKAGE_PREFER_CONFIG, така што повикувањето find_package() прво ќе ја бара конфигурациската датотека на пакетот, дури и ако е достапен пронаоѓач;
  • За интерфејс библиотеки, додадена е поддршка за поставување на својствата PUBLIC_HEADER и PRIVATE_HEADER, со кои заглавијата може да се постават со помош на командата install(TARGETS) со предавање на аргументите PUBLIC_HEADER и PRIVATE_HEADER;
  • Додадена е променлива CMAKE_VS_JUST_MY_CODE_DEBUGGING и целна сопственост VS_JUST_MY_CODE_DEBUGGING за да се овозможи режимот „Само мојот код“ во дебагерот на Visual Studio при компајлирање со помош на MSVC cl 19.05 и понови верзии;
  • Модулот FindBoost е редизајниран, кој сега работи похолистички во режимите Config и Module во присуство на други модули за пребарување;
  • Командата message() сега ги поддржува типовите NOTICE, VERBOSE,
    DEBUG и TRACE;

  • Командата „export(PACKAGE)“ сега не прави ништо освен ако не е експлицитно овозможена преку променливата CMAKE_EXPORT_PACKAGE_REGISTRY.

Извор: opennet.ru

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