CMake 3.15 เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดพเดถเดจเด‚

เดธเด‚เดญเดตเดฟเดšเตเดšเต เด’เดฐเต เด•เตเดฐเต‹เดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ เด“เดชเตเดชเตบ เดฌเดฟเตฝเดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดœเดจเดฑเต‡เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดฑเดฟเดฒเต€เดธเต CMake 3.15, เด“เดŸเตเดŸเต‹เดŸเต‚เดณเตเด•เตพเด•เตเด•เต เดฌเดฆเดฒเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เต†เดกเดฟเด‡, LLVM/Clang, MySQL, MariaDB, ReactOS, Blender เดคเตเดŸเด™เตเด™เดฟเดฏ เดชเตเดฐเต‹เดœเด•เตเดŸเตเด•เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. CMake เด•เต‹เดกเต C++ เตฝ เดŽเดดเตเดคเตเด•เดฏเตเด‚ BSD เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดญเดพเดท, เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดพเตผเด—เตเด—เด‚, เด•เตเดฑเดžเตเดž เดŽเดฃเตเดฃเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ (M4, Perl เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Python เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒ), เด•เดพเดทเดฟเด‚เด—เต เดชเดฟเดจเตเดคเตเดฃ, เด•เตเดฐเต‹เดธเต-เด•เด‚เดชเตˆเดฒเต‡เดทเดจเตเดณเตเดณ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚, เดฌเดฟเตฝเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดŽเดจเตเดจเดฟเดต เดจเตฝเด•เตเดจเตเดจเดคเดฟเตฝ CMake เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฃเต. เดตเดฟเดถเดพเดฒเดฎเดพเดฏ เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเด‚ เด•เดฎเตเดชเตˆเดฒเดฑเตเด•เตพเด•เตเด•เตเดฎเตเดณเตเดณ เดซเดฏเดฒเตเด•เตพ, เดŸเต†เดธเตเดฑเตเดฑเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ ctest, cpack เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ, เดฌเดฟเตฝเดกเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เด†เดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ cmake-gui เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ.

เดชเตเดฐเดงเดพเดจ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ:

  • เดจเดฟเตปเดœ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดœเดจเดฑเต‡เดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดพเดฐเด‚เดญ เดญเดพเดทเดพ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต เดธเตเดตเดฟเดซเตเดฑเตเดฑเต, เด†เดชเตเดชเดฟเตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเดคเต;
  • MSVC ABI เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ, เดŽเดจเตเดจเดพเตฝ GNU-เดถเตˆเดฒเดฟเดฏเดฟเดฒเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด“เดชเตเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดตเดฟเตปเดกเต‹เดธเดฟเดจเดพเดฏเตเดณเตเดณ Clang เด•เด‚เดชเตˆเดฒเดฑเดฟเตปเตเดฑเต† เด’เดฐเต เดตเต‡เดฐเดฟเดฏเตปเตเดฑเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต;
  • MSVC ABI (MS Visual Studio) เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฑเตบเดŸเตˆเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต CMAKE_MSVC_RUNTIME_LIBRARY, MSVC_RUNTIME_LIBRARY เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดšเต‡เตผเดคเตเดคเต;
  • MSVC เดชเต‹เดฒเตเดณเตเดณ เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ, CMAKE__FLAGS เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ "/W3" เดชเต‹เดฒเตเดณเตเดณ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดซเตเดฒเดพเด—เตเด•เตพ เดฒเดฟเดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต;
  • เด“เดฐเต‹ เด•เต‹เดกเต เดซเดฏเดฒเดฟเดจเตเด‚ CMAKE__COMPILER_ID, LANGUAGE เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด•เด‚เดชเตˆเดฒเตผ เด“เดชเตเดทเดจเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต "COMPILE_LANG_AND_ID:" เดœเดจเดฑเต‡เดฑเตเดฑเตผ เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดšเต‡เตผเดคเตเดคเต;
  • เดœเดจเดฑเต‡เดฑเตเดฑเตผ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเดฟเตฝ 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 เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต, PUBLIC_HEADER, PRIVATE_HEADER เด†เตผเด—เตเดฏเตเดฎเต†เตปเตเดฑเตเด•เตพ เดชเดพเดธเดพเด•เตเด•เดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ(TARGETS) เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚;
  • MSVC cl 19.05-เด‰เด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต‹ เดกเต€เดฌเด—เตเด—เดฑเดฟเตฝ "เดœเดธเตเดฑเตเดฑเต เดฎเตˆ เด•เต‹เดกเต" เดฎเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป CMAKE_VS_JUST_MY_CODE_DEBUGGING เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด‚ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ VS_JUST_MY_CODE_DEBUGGING เดšเต‡เตผเดคเตเดคเต;
  • FindBoost เดฎเตŠเดกเตเดฏเต‚เตพ เดชเตเดจเตผเดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเต, เด…เดคเต เด‡เดชเตเดชเต‹เตพ เดฎเดฑเตเดฑเต เดคเดฟเดฐเดฏเตฝ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเดคเตเดคเดฟเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเตเด‚ เดฎเตŠเดกเตเดฏเต‚เตพ เดฎเต‹เดกเตเด•เดณเดฟเดฒเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดธเดฎเด—เตเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต;
  • เดธเดจเตเดฆเต‡เดถเด‚() เด•เดฎเดพเตปเดกเต เด‡เดชเตเดชเต‹เตพ NOTICE, VERBOSE, เดŽเดจเตเดจเต€ เดคเดฐเด™เตเด™เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต.
    เดกเต€เดฌเด—เต เด†เตปเดกเต เดŸเตเดฐเต‡เดธเต;

  • CMAKE_EXPORT_PACKAGE_REGISTRY เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเดดเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เด•เดฏเดฑเตเดฑเตเดฎเดคเดฟ(PACKAGE)" เด•เดฎเดพเตปเดกเต เด‡เดชเตเดชเต‹เตพ เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•