Tso tawm ntawm CMake 3.16 tsim qhov system

Xa los ntawm tso tawm ib tug ntoo khaub lig-platform qhib tsim tsab ntawv generator Cawv 3.16, uas ua raws li lwm txoj hauv kev Autotools thiab siv hauv cov haujlwm xws li KDE, LLVM/Clang, MySQL, MariaDB, ReactOS thiab Blender. CMake code yog sau rau hauv C ++ thiab muab faib raws li BSD daim ntawv tso cai.

CMake yog qhov tseem ceeb rau kev muab cov lus sau yooj yim, txhais tau hais tias txuas ntxiv ua haujlwm los ntawm cov qauv, tsawg kawg ntawm cov kev vam khom (tsis muaj kev khi rau M4, Perl lossis Python), kev txhawb nqa caching, muaj cov cuab yeej rau kev sib sau ua ke, kev txhawb nqa rau kev tsim kho. cov ntaub ntawv rau ntau yam kev tsim cov tshuab thiab cov tshuab sau ua ke, qhov muaj ctest thiab cpack cov khoom siv rau kev txhais cov ntawv xeem thiab cov pob tsev, cmake-gui utility rau kev sib tham sib teeb tsa tsis.

ntsiab kev txhim kho:

  • Ntxiv kev txhawb nqa rau Objective C (β€œOBJC”) thiab hom lus hom lus
    C ++ ("OBJCXX"), uas tuaj yeem qhib los ntawm qhov project() thiab enable_language() cov lus txib, tom qab ntawd cov cai hauv ".m" ".mm" cov ntaub ntawv yuav muab tso ua ke raws li Lub Hom Phiaj C thiab Lub Hom Phiaj C++ code, tsis yog li. C ++, zoo li yav dhau los;

  • Ntxiv kev txhawb nqa rau Clang compiler ntawm Solaris platform;
  • Ntxiv cov kev xaiv kab lus tshiab: "cmake -E tseeb | cuav" los luam cov lej rov qab 0 thiab 1; "cmake --trace-redirect=" rau redirect trace cov ntaub ntawv rau ib cov ntaub ntawv xwb
    "stderr"; cov lus txib "cmake --loglevel" tau hloov npe mus rau "--log-level" kom coj mus rau hauv kab nrog cov npe ntawm lwm cov lus txib;

  • Ntxiv rau "target_precompile_headers()" hais kom sau cov npe ntawm cov ntaub ntawv header siv thaum lub sij hawm ua ntej (txo lub sij hawm tsim);
  • Ntxiv rau "UNITY_BUILD" cov cuab yeej, uas ua rau lub hom phiaj batch rau kev ua cov ntaub ntawv hauv cov tshuab hluav taws xob kom nrawm rau kev tsim;
  • Ntxiv cov lus txib β€œfind_file()”, β€œfind_library()”, β€œfind_path()”,
    "find_package()" thiab "find_program()" txhawm rau tshawb nrhiav cov ntaub ntawv, tsev qiv ntawv, txoj hauv kev, pob khoom thiab kev ua tiav raws li qhov sib txawv uas txhais cov kev tshawb nrhiav rau ntau pawg ntawm cov ntaub ntawv.
    Cov variables "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_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_FINCEM" thiab _USE_PACKAGE_RE" yog siv los tswj cov kev tshawb nrhiav hauv paus GISTRY";

  • Ntxiv "cov ntaub ntawv (GET_RUNTIME_DEPENDENCIES)" hom rau "file()" hais kom ua, uas tso cai rau koj rov qab tau cov npe ntawm cov tsev qiv ntawv siv thaum txuas cov ntaub ntawv ua tiav lossis tsev qiv ntawv. Cov hom hloov qhov GetPrerequisites() hais kom ua, uas tam sim no tau deprecated;
  • Cov lus txib "ctest(1)" siv lub peev xwm los ntsuas cov ntawv xeem raws li cov peev txheej xav tau rau txhua qhov kev xeem;
  • Qhov sib txawv "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" tau raug tshem tawm thiab yuav tsum tau hloov los ntawm "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Txhim kho AIX platform txhawb nqa. Thaum siv cov cuab yeej "ENABLE_EXPORTS", ntxiv rau cov ntaub ntawv executable, cov ntaub ntawv ntshuam rau tus txuas tam sim no tau tsim, khaws cia nrog ".imp" txuas ntxiv. Hauv plugins tsim los ntawm kev hu "add_library()" nrog rau "MODULE" kev xaiv, cov ntaub ntawv no tuaj yeem siv tau thaum txuas siv "target_link_libraries()" hais kom ua. Runtime linking ntawm AIX yog neeg xiam los ntawm lub neej ntawd vim CMake tam sim no muab tag nrho cov ntaub ntawv cim tsim nyog rau kev sib txuas ntawm lub sijhawm thauj khoom. Txhawm rau siv lub sijhawm sib txuas ntawm cov tsev qiv ntawv dynamic lossis cov khoom siv thauj khoom, koj yuav tsum qhia meej meej cov kev xaiv "-Wl, -G" hauv cov npe ntawm cov ntawv txuas txuas pib chij, txhais los ntawm qhov sib txawv "CMAKE_SHARED_LINKER_FLAGS" thiab "CMAKE_MODULE_LINKER_FLAGS".

Tau qhov twg los: opennet.ru

Ntxiv ib saib