ืžืขืœื“ื•ื ื’ ืคื•ืŸ CMake 3.15 ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขื

ืคืืจื’ืขืงื•ืžืขืŸ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืึท ืงืจื™ื™ึทื–-ืคึผืœืึทื˜ืคืึธืจืžืข ืขืคืขื ืขืŸ ื‘ื•ื™ืขืŸ ืฉืจื™ืคื˜ ื’ืขื ืขืจืึทื˜ืึธืจ ืžืึทื›ืŸ 3.15, ื•ื•ืึธืก ืื™ื– ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืฆื• ืึทื•ื˜ืึธื˜ืึธืึธืœืก ืื•ืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ืึทื–ืึท ื•ื•ื™ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ืื•ืŸ Blender. ื“ื™ ืงืžืึทืงืข ืงืึธื“ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C ++ ืื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ BSD ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

CMake ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึท ืคึผืฉื•ื˜ ืกืงืจื™ืคึผื˜ื™ื ื’ ืฉืคึผืจืึทืš, ืึท ืžื™ื˜ืœ ืฆื• ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ื“ื•ืจืš ืžืึทื“ื–ืฉื•ืœื–, ืึท ืžื™ื ื™ืžืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– (ืงื™ื™ืŸ ื‘ื™ื™ื ื“ื™ื ื’ ืฆื• M4, Perl ืึธื“ืขืจ Python), ืงืึทื˜ืฉื™ื ื’ ืฉื˜ื™ืฆืŸ, ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืงืจื™ื™ึทื– ื–ืึทืžืœื•ื ื’, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ื‘ื•ื™ืขืŸ. ื˜ืขืงืขืก ืคึฟืึทืจ ืึท ื‘ืจื™ื™ื˜ ืงื™ื™ื˜ ืคื•ืŸ ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขืžืขืŸ ืื•ืŸ ืงืึธืžืคึผื™ืœืขืจืก, ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืงื˜ืขืกื˜ ืื•ืŸ ืงืคึผืึทืง ื™ื•ื˜ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ื“ื™ืคื™ื™ื ื™ื ื’ ืคึผืจื•ื‘ื™ืจืŸ ืกืงืจื™ืคึผืก ืื•ืŸ ื‘ื ื™ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–, cmake-gui ื ื•ืฆืŸ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื•ืข ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื‘ื•ื™ืขืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

ื”ื•ื™ืคึผื˜ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ:

  • ืขืจืฉื˜ ืฉืคึผืจืึทืš ืฉื˜ื™ืฆืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื ื™ื ื“ื–ืฉืึท-ื‘ืื–ื™ืจื˜ ื‘ื•ื™ืขืŸ ืฉืจื™ืคื˜ ื’ืขื ืขืจืึทื˜ืึธืจ ื‘ื™ืกื˜ืจืข, ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš ืขืคึผืœ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึท ื•ื•ืึทืจื™ืึทื ื˜ ืคื•ืŸ ื“ื™ ืงืœืึทื ื’ ืงืึทืžืคึผื™ื™ืœืขืจ ืคึฟืึทืจ 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 ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ื“ื•ืจืš ื•ื•ืึธืก ื›ืขื“ืขืจื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทืฉื˜ื™ืžื˜ ื ื™ืฆืŸ ื“ื™ ื™ื ืกื˜ืึทืœืœ (TARGETS) ื‘ืึทืคึฟืขืœืŸ ื“ื•ืจืš ืคืึธืจืŸ ื“ื™ PUBLIC_HEADER ืื•ืŸ PRIVATE_HEADER ืึทืจื’ื•ืžืขื ื˜ืŸ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ CMAKE_VS_JUST_MY_CODE_DEBUGGING ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื•ืŸ ืฆื™ืœ ืคืึทืจืžืึธื’ VS_JUST_MY_CODE_DEBUGGING ืฆื• ื’ืขื‘ืŸ "Just My Code" ืžืึธื“ืข ืื™ืŸ ื“ื™ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ื“ื™ื‘ื•ื’ื’ืขืจ ื•ื•ืขืŸ ืงืึทืžืคึผื™ื™ืœื™ื ื’ ื ื™ืฆืŸ MSVC cl 19.05 ืื•ืŸ ื ื™ื™ึทืขืจ ื•ื•ืขืจืกื™ืขืก;
  • ื“ื™ FindBoost ืžืึธื“ื•ืœืข ืื™ื– ืจื™ื“ื™ื–ื™ื™ื ื“, ื•ื•ืึธืก ืื™ืฆื˜ ืึทืจื‘ืขื˜ ืžืขืจ ื”ืึธืœื™ืกื˜ื™ืงืœื™ ืื™ืŸ ืงืึธื ืคื™ื’ ืื•ืŸ ืžืึธื“ื•ืœืข ืžืึธื“ืขืก ืื™ืŸ ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืื ื“ืขืจืข ื–ื•ื›ืŸ ืžืึทื“ื–ืฉื•ืœื–;
  • ื“ืขืจ ืึธื ื–ืึธื’ () ื‘ืึทืคึฟืขืœ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื“ื™ ื˜ื™ื™ืคึผืก ื ืึธื˜ื™ืฅ, ื•ื•ืขืจื‘ืึธืกืข,
    ื“ืขื‘ื•ื’ ืื•ืŸ ืฉืคึผื•ืจ;

  • ื“ื™ "ืขืงืกืคึผืึธืจื˜ (PACKAGE)" ื‘ืึทืคึฟืขืœ ืื™ืฆื˜ ื˜ื•ื˜ ื’ืึธืจื ื™ืฉื˜ ืกื™ื™ึทื“ืŸ ื‘ืคื™ืจื•ืฉ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ื“ื™ CMAKE_EXPORT_PACKAGE_REGISTRY ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’