Рэліз сістэмы зборкі 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, які ажыццяўляе зборку з ABI MSVC, але выкарыстоўвае опцыі камандай радка ў стылі GNU;
  • Дададзены зменныя CMAKE_MSVC_RUNTIME_LIBRARY і MSVC_RUNTIME_LIBRARY для выбару runtime-бібліятэк, якія выкарыстоўваюцца кампілятарамі на базе ABI MSVC (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 для ўключэння рэжыму "Just My Code" у адладчыку Visual Studio пры кампіляцыі з выкарыстаннем MSVC cl 19.05/XNUMX і больш новых версій;
  • Перапрацаваны модуль FindBoost, які зараз больш цэласна адпрацоўвае ў рэжымах Config і Module пры наяўнасці іншых модуляў пошуку;
  • У каманжу message() дададзена падтрымка тыпаў NOTICE, VERBOSE,
    DEBUG і TRACE;

  • Каманда "export(PACKAGE)" зараз нічога не робіць пакуль відавочна не будзе ўключаная праз зменную CMAKE_EXPORT_PACKAGE_REGISTRY.

Крыніца: opennet.ru

Дадаць каментар