ืฉื—ืจื•ืจ ืฉืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” CMake 3.15

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ ืฉืœ ืžื—ื•ืœืœ ืกืงืจื™ืคื˜ ื‘ื ื™ื™ื” ืคืชื•ื— ื—ื•ืฆื” ืคืœื˜ืคื•ืจืžื•ืช CMake 3.15, ื”ืžืฉืžืฉ ื›ื—ืœื•ืคื” ืœ-AutoTools ื•ืžืฉืžืฉ ื‘ืคืจื•ื™ืงื˜ื™ื ื›ื’ื•ืŸ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ื•-Blender. ืงื•ื“ CMake ื›ืชื•ื‘ ื‘-C++ ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

CMake ื‘ื•ืœื˜ ื‘ืžืชืŸ ืฉืคืช ืกืงืจื™ืคื˜ื™ื ืคืฉื•ื˜ื”, ืืžืฆืขื™ ืœื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืืžืฆืขื•ืช ืžื•ื“ื•ืœื™ื, ืžืกืคืจ ืžื™ื ื™ืžืœื™ ืฉืœ ืชืœื•ืช (ืœืœื ืงืฉื™ืจื” ืœ-M4, Perl ืื• Python), ืชืžื™ื›ื” ื‘ืžื˜ืžื•ืŸ, ื ื•ื›ื—ื•ืช ืฉืœ ื›ืœื™ื ืœื”ื™ื“ื•ืจ ืฆื•ืœื‘, ืชืžื™ื›ื” ื‘ื™ืฆื™ืจืช build ืงื‘ืฆื™ื ืœืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืžืขืจื›ื•ืช ื‘ื ื™ื™ื” ื•ืžื”ื“ืจื™ื, ื›ืœื™ ื”ืฉื™ืจื•ืช Ctest ืฉืœ ื ื•ื›ื—ื•ืช ื•-cpack ืœื”ื’ื“ืจืช ืกืงืจื™ืคื˜ื™ื ืœื‘ื“ื™ืงื” ื•ื‘ื ื™ื™ืช ื—ื‘ื™ืœื•ืช, ื›ืœื™ ืขื–ืจ cmake-gui ืœื”ื’ื“ืจื” ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ืช ืฉืœ ืคืจืžื˜ืจื™ ื‘ื ื™ื™ื”.

ื”ืขื™ืงืจื™ ืฉื™ืคื•ืจื™ื:

  • ืชืžื™ื›ืช ืฉืคื” ืจืืฉื•ื ื™ืช ื ื•ืกืคื” ืœืžื—ื•ืœืœ script build ืžื‘ื•ืกืก Ninja ืกื•ื•ื™ืคื˜, ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ ืืคืœ;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื’ืจืกื” ืฉืœ ืžื”ื“ืจ 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 ื›ื“ื™ ืœืืคืฉืจ ืžืฆื‘ "Just My Code" ื‘ืžืคืจืง ื”ื‘ืื’ื™ื ืฉืœ Visual Studio ื‘ืขืช ื”ื™ื“ื•ืจ ื‘ืืžืฆืขื•ืช MSVC cl 19.05 ื•ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ื™ื•ืชืจ;
  • ืžื•ื“ื•ืœ FindBoost ืขื•ืฆื‘ ืžื—ื“ืฉ, ืฉืขื•ื‘ื“ ื›ืขืช ื‘ืฆื•ืจื” ื”ื•ืœื™ืกื˜ื™ืช ื™ื•ืชืจ ื‘ืžืฆื‘ื™ Config ื•-Module ื‘ื ื•ื›ื—ื•ืช ืžื•ื“ื•ืœื™ ื—ื™ืคื•ืฉ ืื—ืจื™ื;
  • ื”ืคืงื•ื“ื” message() ืชื•ืžื›ืช ื›ืขืช ื‘ืกื•ื’ื™ื NOTICE, VERBOSE,
    DEBUG ื•-TRACE;

  • ื”ืคืงื•ื“ื” "export(PACKAGE)" ืื™ื ื” ืขื•ืฉื” ื“ื‘ืจ, ืืœื ืื ืžื•ืคืขืœืช ื‘ืžืคื•ืจืฉ ื‘ืืžืฆืขื•ืช ื”ืžืฉืชื ื” CMAKE_EXPORT_PACKAGE_REGISTRY.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”