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

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

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

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

  • เด’เดฌเตเดœเด•เตเดฑเตเดฑเต€เดตเต เดธเดฟ ("เด’เดฌเดฟเดœเต†เดธเดฟ"), เด’เดฌเตเดœเด•เตเดฑเตเดฑเต€เดตเต เดญเดพเดทเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต
    C++ ("OBJCXX"), เด…เดคเต เดชเตเดฐเตŠเดœเด•เตเดฑเตเดฑเต(), enable_language() เด•เดฎเดพเตปเดกเตเด•เตพ เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ ".m" ".mm" เดซเดฏเดฒเตเด•เดณเดฟเดฒเต† เด•เต‹เดกเต เด’เดฌเตเดœเด•เตเดฑเตเดฑเต€เดตเต C, เด’เดฌเตเดœเด•เตเดฑเตเดฑเต€เดตเต C++ เด•เต‹เดกเต เด†เดฏเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเด‚. C++, เดฎเตเดฎเตเดชเดคเตเดคเต†เดชเตเดชเต‹เดฒเต†;

  • เดธเต‹เดณเดพเดฐเดฟเดธเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเตฝ เด•เตเดฒเดพเด™เต เด•เด‚เดชเตˆเดฒเดฑเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต;
  • เดชเตเดคเดฟเดฏ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด“เดชเตเดทเดจเตเด•เตพ เดšเต‡เตผเดคเตเดคเต: "cmake -E true|false" เดฑเดฟเดŸเตเดŸเต‡เตบ เด•เต‹เดกเตเด•เตพ 0, 1 เดŽเดจเตเดจเดฟเดต เดชเตเดฐเดฟเตปเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป; "cmake --trace-redirect=" เดชเด•เดฐเด‚ เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดฑเต€เดกเดฏเดฑเด•เตเดŸเต เดšเต†เดฏเตเดฏเดพเตป
    "stderr"; "cmake --loglevel" เด•เดฎเดพเตปเดกเต เดฎเดฑเตเดฑเต เด•เดฎเดพเตปเดกเตเด•เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เด•เตŠเดฃเตเดŸเตเดตเดฐเดพเตป "--log-level" เดŽเดจเตเดจเต เดชเตเดจเตผเดจเดพเดฎเด•เดฐเดฃเด‚ เดšเต†เดฏเตเดคเต;

  • เดชเตเดฐเต€เด•เด‚เดชเตˆเดฒเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดนเต†เดกเตผ เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป "target_precompile_headers()" เด•เดฎเดพเตปเดกเต เดšเต‡เตผเดคเตเดคเต (เดฌเดฟเตฝเดกเต เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต);
  • "UNITY_BUILD" เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เดšเต‡เตผเดคเตเดคเต, เดฌเดฟเตฝเดกเต เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เดพเตป เดœเดจเดฑเต‡เดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เด‰เดฑเดตเดฟเดŸ เดซเดฏเดฒเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฌเดพเดšเตเดšเต เดฎเต‹เดกเต เดธเดœเต€เดตเดฎเดพเด•เตเด•เตเดจเตเดจเต;
  • โ€œfind_file()โ€, โ€œfind_library()โ€, โ€œfind_path()โ€, เดŽเดจเตเดจเต€ เด•เดฎเดพเตปเดกเตเด•เตพ เดšเต‡เตผเดคเตเดคเต
    "find_package()", "find_program()" เดŽเดจเตเดจเดฟเดต เดซเดฏเดฒเตเด•เตพ, เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ, เดชเดพเดคเตเดคเตเด•เตพ, เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเดณเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดจเต เดตเดฟเดตเดฟเดง เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดคเดฟเดฐเดฏเตฝ เดชเดพเดคเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต.
    เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FINDEMKTH_USE_TO_PYST" RY เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดฟเดฐเดฏเตฝ เดชเดพเดคเด•เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป _ENVIRONMENT_PATH", "CMAKE_FIND_USE_PACKAGE_REGIST" เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต;

  • "เดซเดฏเตฝ(GET_RUNTIME_DEPENDENCIES)" เดฎเต‹เดกเต "เดซเดฏเตฝ()" เด•เดฎเดพเตปเดกเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต, เด‡เดคเต เด’เดฐเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเต‹ เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเต‹ เดกเตˆเดจเดพเดฎเดฟเด•เต เด†เดฏเดฟ เดฒเดฟเด™เตเด•เต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเต‹เดกเต GetPrerequisites() เด•เดฎเดพเตปเดกเดฟเดจเต† เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเต, เด…เดคเต เด‡เดชเตเดชเต‹เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต;
  • "ctest(1)" เด•เดฎเดพเตปเดกเต เด“เดฐเต‹ เดŸเต†เดธเตเดฑเตเดฑเดฟเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต;
  • "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" เดŽเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† เด’เดดเดฟเดตเดพเด•เตเด•เดฟ, เดชเด•เดฐเด‚ "CMAKE_FIND_USE_PACKAGE_REGISTRY" เดจเตฝเด•เดฃเด‚;
  • เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ AIX เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ เดชเดฟเดจเตเดคเตเดฃ. "ENABLE_EXPORTS" เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเดฟเดจเต เดชเตเดฑเดฎเต‡, เดฒเดฟเด™เตเด•เดฑเดฟเดจเดพเดฏเตเดณเตเดณ เด’เดฐเต เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดซเดฏเตฝ เด‡เดชเตเดชเต‹เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดคเต ".imp" เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. "MODULE" เด“เดชเตโ€Œเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต "add_library()" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเดšเตเดšเต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เดชเตเดฒเด—เดฟเดจเตเดจเตเด•เดณเดฟเตฝ, "target_link_libraries()" เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเดฟเด™เตเด•เต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดˆ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เตเด‚. เดฒเต‹เดกเต เดธเดฎเดฏเดคเตเดคเต เดฒเดฟเด™เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดšเดฟเดนเตเดจ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ CMake เด‡เดชเตเดชเต‹เตพ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ AIX-เดฒเต† เดฑเตบเดŸเตˆเด‚ เดฒเดฟเด™เตเด•เดฟเด‚เด—เต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฃเต. เดกเตˆเดจเดพเดฎเดฟเด•เต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต†เดฏเต‹ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต†เดฏเต‹ เดฑเตบเดŸเตˆเด‚ เดฒเดฟเด™เตเด•เดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, "CMAKE_SHARED_LINKER_FLAGS", "CMAKE_MODULE_LINKERFLAGS" เดŽเดจเตเดจเต€ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดฟเดฒเต‚เดŸเต† เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเดฟเด™เตเด•เตผ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดซเตเดฒเดพเด—เตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ "-Wl, -G" เด“เดชเตเดทเดจเตเด•เตพ เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฃเด‚.

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

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