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

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

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

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

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉืคื•ืช Objective C ("OBJC") ื•ืฉืคื•ืช Objective
    C++ ("OBJCXX"), ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื•ืช project() ื•-enable_language(), ื•ืœืื—ืจ ืžื›ืŸ ื”ืงื•ื“ ื‘ืงื‘ืฆื™ ".m" ".mm" ื™ืงืžืคืœ ื›ืงื•ื“ Objective C ื•-Objective C++, ื•ืœื ื›ืงื•ื“. C++, ื›ืคื™ ืฉื”ื™ื” ืงื•ื“ื;

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื”ื“ืจ Clang ื‘ืคืœื˜ืคื•ืจืžืช Solaris;
  • ื ื•ืกืคื• ืืคืฉืจื•ื™ื•ืช ื—ื“ืฉื•ืช ืฉืœ ืฉื•ืจืช ืคืงื•ื“ื”: "cmake -E true|false" ื›ื“ื™ ืœื”ื“ืคื™ืก ืงื•ื“ื™ ื”ื—ื–ืจื” 0 ื•-1; "cmake --trace-redirect=" ื›ื“ื™ ืœื”ืคื ื•ืช ืžื™ื“ืข ืžืขืงื‘ ืœืงื•ื‘ืฅ ื‘ืžืงื•ื ื–ืืช
    "ืกื˜ื“ืจืจ"; ืฉื ื”ืคืงื•ื“ื” "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_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_USE_CMAKE_PATH"_USE_CMAKE_FIND_EN_USE_CMAKE_FINDETH_EN_USE_CMAKE_FIND_USE IST" ืžืฉืžืฉื™ื ืœืฉืœื™ื˜ื” ื‘ื ืชื™ื‘ื™ ื”ื—ื™ืคื•ืฉ ื”ื‘ืกื™ืกื™ื™ื RY";

  • ื”ื•ืกื™ืคื• ืืช ืžืฆื‘ "file(GET_RUNTIME_DEPENDENCIES)" ืœืคืงื•ื“ืช "file()", ื”ืžืืคืฉืจืช ืœืš ืœืื—ื–ืจ ื‘ืื•ืคืŸ ืจืงื•ืจืกื™ื‘ื™ ืืช ืจืฉื™ืžืช ื”ืกืคืจื™ื•ืช ื”ืžืฉืžืฉื•ืช ื‘ืขืช ืงื™ืฉื•ืจ ื“ื™ื ืžื™ ืฉืœ ืงื•ื‘ืฅ ื”ืคืขืœื” ืื• ืกืคืจื™ื”. ื”ืžืฆื‘ ื”ื—ืœื™ืฃ ืืช ื”ืคืงื•ื“ื” GetPrerequisites() ืืฉืจ ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ื›ืขืช;
  • ื”ืคืงื•ื“ื” "ctest(1)" ืžื™ื™ืฉืžืช ืืช ื”ื™ื›ื•ืœืช ืœืกื“ืจ ื‘ื“ื™ืงื•ืช ื‘ื”ืชื‘ืกืก ืขืœ ื”ืžืฉืื‘ื™ื ื”ื ื“ืจืฉื™ื ืœื›ืœ ื‘ื“ื™ืงื”;
  • ื”ืžืฉืชื ื” "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" ื”ื•ืฆื ืžืฉื™ืžื•ืฉ ื•ื™ืฉ ืœื”ื—ืœื™ืคื• ื‘-"CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • ืชืžื™ื›ืช ืคืœื˜ืคื•ืจืžืช AIX ืžืฉื•ืคืจืช. ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžืืคื™ื™ืŸ "ENABLE_EXPORTS", ื‘ื ื•ืกืฃ ืœืงื•ื‘ืฅ ื”ื”ืคืขืœื”, ื ื•ืฆืจ ื›ืขืช ืงื•ื‘ืฅ ื™ื™ื‘ื•ื โ€‹โ€‹ืขื‘ื•ืจ ื”ืžืงืฉืจ, ืฉื ืฉืžืจ ืขื ืกื™ื•ืžืช ".imp". ื‘ืชื•ืกืคื™ื ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœ-"add_library()" ืขื ืืคืฉืจื•ืช "MODULE", ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืงื•ื‘ืฅ ื–ื” ื‘ืขืช ืงื™ืฉื•ืจ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” "target_link_libraries()". ืงื™ืฉื•ืจ ื–ืžืŸ ืจื™ืฆื” ื‘-AIX ืžื•ืฉื‘ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืžื›ื™ื•ื•ืŸ ืฉ- CMake ืžืกืคืง ื›ืขืช ืืช ื›ืœ ืžื™ื“ืข ื”ืกืžืœื™ื ื”ื“ืจื•ืฉ ืœืงื™ืฉื•ืจ ื‘ื–ืžืŸ ื”ื˜ืขื™ื ื”. ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืงื™ืฉื•ืจ ื–ืžืŸ ืจื™ืฆื” ืฉืœ ืกืคืจื™ื•ืช ื“ื™ื ืžื™ื•ืช ืื• ืžื•ื“ื•ืœื™ื ื”ื ื™ืชื ื™ื ืœื˜ืขื™ื ื”, ืขืœื™ืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืืช ื”ืืคืฉืจื•ื™ื•ืช "-Wl, -G" ื‘ืจืฉื™ืžื•ืช ืฉืœ ื“ื’ืœื™ ื”ืคืขืœื” ืžืงืฉืจ, ื”ืžื•ื’ื“ืจื™ื ื‘ืืžืฆืขื•ืช ื”ืžืฉืชื ื™ื "CMAKE_SHARED_LINKER_FLAGS" ื•-"CMAKE_MODULE_LINKER_FLAGS".

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

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