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

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

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

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

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัะทั‹ะบะพะฒ 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=ยป ะดะปั ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปะตะฝะธั ะธะฝั„ะพั€ะผะฐั†ะธะธ ะพ ั‚ั€ะฐััะธั€ะพะฒะบะต ะฒ ั„ะฐะนะป, ะฒะผะตัั‚ะพ
    ยซ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_FIND_USE_PACKAGE_ROOT_PATHยป, ยซCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATHยป ะธ ยซCMAKE_FIND_USE_PACKAGE_REGISTRYยป;

  • ะ’ ะบะพะผะฐะฝะดัƒ ยซfile()ยป ะดะพะฑะฐะฒะปะตะฝ ั€ะตะถะธะผ ยซfile(GET_RUNTIME_DEPENDENCIES)ยป, ะฟะพะทะฒะพะปััŽั‰ะธะน ั€ะตะบัƒั€ัะธะฒะฝะพ ะธะทะฒะปะตั‡ัŒ ัะฟะธัะพะบ ะฑะธะฑะปะธะพั‚ะตะบ, ะทะฐะดะตะนัั‚ะฒะพะฒะฐะฝะฝั‹ั… ะฟั€ะธ ะดะธะฝะฐะผะธั‡ะตัะบะพะผ ัะฒัะทั‹ะฒะฐะฝะธะธ ะธัะฟะพะปะฝัะตะผะพะณะพ ั„ะฐะนะปะฐ ะธะปะธ ะฑะธะฑะปะธะพั‚ะตะบะธ. ะ ะตะถะธะผ ะฟั€ะธัˆั‘ะป ะฝะฐ ัะผะตะฝัƒ ะบะพะผะฐะฝะดะต GetPrerequisites(), ะบะพั‚ะพั€ะฐั ั‚ะตะฟะตั€ัŒ ะพะฑัŠัะฒะปะตะฝะฐ ัƒัั‚ะฐั€ะตะฒัˆะตะน;
  • ะ’ ะบะพะผะฐะฝะดะต ยซctest(1)ยป ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะตั€ะธะฐะปะธะทะฐั†ะธะธ ั‚ะตัั‚ะพะฒ, ะพั‚ั‚ะฐะปะบะธะฒะฐัััŒ ะพั‚ ั€ะตััƒั€ัะพะฒ, ั‚ั€ะตะฑัƒะตะผั‹ั… ะดะปั ะบะฐะถะดะพะณะพ ั‚ะตัั‚ะฐ;
  • ะžะฑัŠัะฒะปะตะฝะฐ ัƒัั‚ะฐั€ะตะฒัˆะตะน ะฟะตั€ะตะผะตะฝะฝะฐั ยซCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRYยป, ะฒะผะตัั‚ะพ ะบะพั‚ะพั€ะพะน ัะปะตะดัƒะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ยซCMAKE_FIND_USE_PACKAGE_REGISTRYยป;
  • ะฃะปัƒั‡ัˆะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฟะปะฐั‚ั„ะพั€ะผั‹ AIX. ะŸั€ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ ัะฒะพะนัั‚ะฒะฐ ยซENABLE_EXPORTSยป, ะฟะพะผะธะผะพ ะธัะฟะพะปะฝัะตะผะพะณะพ ั„ะฐะนะปะฐ, ั‚ะตะฟะตั€ัŒ ั„ะพั€ะผะธั€ัƒะตั‚ัั ั„ะฐะนะป ะธะผะฟะพั€ั‚ะฐ ะดะปั ะบะพะผะฟะพะฝะพะฒั‰ะธะบะฐ, ัะพั…ั€ะฐะฝัะตะผั‹ะน ั ั€ะฐััˆะธั€ะตะฝะธะตะผ ยซ.impยป. ะ’ ะฟะปะฐะณะธะฝะฐั…, ัะพะทะดะฐะฒะฐะตะผั‹ั… ะฟั€ะธ ะฟะพะผะพั‰ะธ ะฒั‹ะทะพะฒะฐ ยซadd_library()ยป ั ะพะฟั†ะธะตะน ยซMODULEยป, ะดะฐะฝะฝั‹ะน ั„ะฐะนะป ะผะพะถะตั‚ ะฟั€ะธะผะตะฝัั‚ัŒัั ะฟั€ะธ ะบะพะผะฟะพะฝะพะฒะบะต ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะบะพะผะฐะฝะดั‹ ยซtarget_link_libraries()ยป. Runtime-ะบะพะผะฟะพะฝะพะฒะบะฐ ะฒ AIX ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะพั‚ะบะปัŽั‡ะตะฝะฐ, ั‚ะฐะบ ะบะฐะบ CMake ั‚ะตะฟะตั€ัŒ ะฟั€ะตะดะพัั‚ะฐะฒะปัะตั‚ ะฒััŽ ะฝะตะพะฑั…ะพะดะธะผัƒัŽ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ ัะธะผะฒะพะปะฐั… ะดะปั ัะฒัะทั‹ะฒะฐะฝะธั ะฒะพ ะฒั€ะตะผั ะทะฐะณั€ัƒะทะบะธ. ะ”ะปั ะฟั€ะธะผะตะฝะตะฝะธั runtime-ะบะพะผะฟะพะฝะพะฒะบะธ ะดะธะฝะฐะผะธั‡ะตัะบะธั… ะฑะธะฑะปะธะพั‚ะตะบ ะธะปะธ ะทะฐะณั€ัƒะถะฐะตะผั‹ั… ะผะพะดัƒะปะตะน ัะปะตะดัƒะตั‚ ัะฒะฝะพ ัƒะบะฐะทั‹ะฒะฐั‚ัŒ ะพะฟั†ะธะธ ยซ-Wl,-Gยป ะฒ ัะฟะธัะบะธ ั„ะปะฐะณะพะฒ ะทะฐะฟัƒัะบะฐ ะบะพะผะฟะพะฝะพะฒั‰ะธะบะฐ, ะพะฟั€ะตะดะตะปัะตะผั‹ั… ั‡ะตั€ะตะท ะฟะตั€ะตะผะตะฝะฝั‹ะต ยซCMAKE_SHARED_LINKER_FLAGSยป ะธ ยซCMAKE_MODULE_LINKER_FLAGSยป.

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

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