เบเบฒเบ™เบ›เปˆเบญเบเบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ CMake 3.15

เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบชเป‰เบฒเบ‡เบชเบฐเบ„เบฃเบดเบšเปเบšเบšเป€เบ›เบตเบ”เบ‚เป‰เบฒเบกเป€เบงเบ—เบต CMake 3.15, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡ Autotools เปเบฅเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบฑเปˆเบ™ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS เปเบฅเบฐ Blender. เบฅเบฐเบซเบฑเบ” CMake เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ C ++ เปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” BSD.

CMake เป€เบ›เบฑเบ™เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบžเบฒเบชเบฒเบชเบฐเบ„เบดเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบกเบ”เบนเบ™, เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช (เบšเปเปˆเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบš M4, Perl เบซเบผเบท Python), เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ, เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เป‰เบฒเบก, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡. เป„เบŸเบฅเปŒเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบเป‰เบงเบฒเบ‡เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบฅเบฐ compilers, เบกเบต ctest เปเบฅเบฐ cpack utilities เบชเปเบฒเบฅเบฑเบšเบเปเบฒเบ™เบปเบ” scripts เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบŠเบธเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, cmake-gui utility เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™.

เบ•เบปเป‰เบ™โ€‹เบ•เป เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡:

  • เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบžเบฒเบชเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ•เบปเบงเบชเป‰เบฒเบ‡เบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Ninja Swift, เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Apple;
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบ‚เบญเบ‡ Clang compiler เบชเปเบฒเบฅเบฑเบš Windows เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ”เป‰เบงเบ MSVC ABI, เปเบ•เปˆเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบšเบš GNU;
  • เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ› CMAKE_MSVC_RUNTIME_LIBRARY เปเบฅเบฐ MSVC_RUNTIME_LIBRARY เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” runtime เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ compilers เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ 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 เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เปเบ” "เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ" เปƒเบ™ Visual Studio debugger เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ MSVC cl 19.05 เปเบฅเบฐเบฅเบธเป‰เบ™เปƒเปเปˆเบเบงเปˆเบฒ;
  • เป‚เบกเบ”เบนเบ™ FindBoost เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบซเบกเปˆ, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเบฅเบงเบกเบ•เบปเบงเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เป‚เบซเบกเบ” Config เปเบฅเบฐ Module เปƒเบ™เบ—เบตเปˆเบ›เบฐเบ—เบฑเบšเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ„เบปเป‰เบ™เบซเบฒเบญเบทเปˆเบ™เป†;
  • เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก () เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบฐเป€เบžเบ” NOTICE, VERBOSE,
    DEBUG เปเบฅเบฐ TRACE;

  • เบ„เปเบฒเบชเบฑเปˆเบ‡ "export(PACKAGE)" เบ•เบญเบ™เบ™เบตเป‰เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฅเบตเบเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบœเปˆเบฒเบ™เบ•เบปเบงเปเบ› CMAKE_EXPORT_PACKAGE_REGISTRY.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™