Нашри системаи сохтани CMake 3.15

сурат гирифт баровардани як генератори скрипти кушодаи байниплатформа CMake 3.15, ки ҳамчун алтернатива ба Autotools амал мекунад ва дар лоиҳаҳо ба монанди KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ва Blender истифода мешавад. Рамзи CMake дар C++ навишта шудааст ва таҳти иҷозатномаи BSD паҳн карда мешавад.

CMake бо пешниҳоди забони оддии скрипт, воситаи васеъ кардани функсияҳо тавассути модулҳо, шумораи ҳадди ақали вобастагӣ (ҳатмӣ ба M4, Perl ё Python), дастгирии кэш, мавҷудияти абзорҳо барои компилясияи байнисоҳавӣ, дастгирии тавлиди сохтмон намоён аст. файлҳо барои доираи васеи системаҳо ва компиляторҳо, мавҷудияти utilities 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 барои фаъол кардани режими "Танҳо Кодекси ман" дар debugger Visual Studio ҳангоми тартиб додани истифодаи MSVC cl 19.05 ва версияҳои навтар;
  • Модули FindBoost аз нав тарҳрезӣ шудааст, ки ҳоло он дар ҳолати конфигуратсия ва модул дар ҳузури модулҳои ҷустуҷӯии дигар ба таври куллӣ кор мекунад;
  • Фармони message() ҳоло намудҳои NOTICE, VERBOSE,
    DEBUG ва TRACE;

  • Фармони "export(PACKAGE)" ҳоло ҳеҷ кор намекунад, агар ба таври возеҳ тавассути тағирёбандаи CMAKE_EXPORT_PACKAGE_REGISTRY фаъол карда нашавад.

Манбаъ: opennet.ru

Илова Эзоҳ