Tso tawm ntawm CMake 3.15 tsim qhov system

coj qhov chaw tso tawm ib tug ntoo khaub lig-platform qhib tsim tsab ntawv generator Cawv 3.15, 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:

  • Kev txhawb nqa lus pib tau ntxiv rau Ninja-raws li tsim cov ntawv tsim hluav taws xob swift, tsim los ntawm Apple;
  • Ntxiv kev txhawb nqa rau qhov sib txawv ntawm Clang compiler rau Windows uas tsim nrog MSVC ABI, tab sis siv GNU-style hais kom ua kab xaiv;
  • Ntxiv CMAKE_MSVC_RUNTIME_LIBRARY thiab MSVC_RUNTIME_LIBRARY hloov pauv los xaiv cov tsev qiv ntawv runtime siv los ntawm cov neeg sau ua ke raws li MSVC ABI (MS Visual Studio);
  • Rau cov compilers zoo li MSVC, CMAKE__FLAGS los ntawm lub neej ntawd nres cov npe ceeb toom tswj chij xws li "/W3";
  • Ntxiv ib lub tshuab hluav taws xob qhia "COMPILE_LANG_AND_ID:" los txhais cov kev xaiv compiler rau cov hom phiaj cov ntaub ntawv, siv CMAKE__COMPILER_ID thiab LANGUAGE sib txawv rau txhua cov ntaub ntawv code;
  • Hauv lub tshuab hluav taws xob kab lus C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID thiab PLATFORM_ID ntxiv kev txhawb nqa rau kev sib piv ib tus nqi rau ib daim ntawv uas nws cov ntsiab lus sib cais los ntawm ib qho comma;

  • Ntxiv qhov sib txawv CMAKE_FIND_PACKAGE_PREFER_CONFIG thiaj li hu rau find_package() yuav tshawb rau pob cov ntaub ntawv teeb tsa ua ntej, txawm tias muaj tus finder;
  • Rau cov tsev qiv ntawv sib txuas, kev txhawb nqa tau ntxiv rau kev teeb tsa PUBLIC_HEADER thiab PRIVATE_HEADER cov cuab yeej, los ntawm cov headers tuaj yeem teeb tsa siv qhov teeb tsa (TARGETS) cov lus txib los ntawm kev hla PUBLIC_HEADER thiab PRIVATE_HEADER cov lus sib cav;
  • Ntxiv CMAKE_VS_JUST_MY_CODE_DEBUGGING sib txawv thiab lub hom phiaj cov cuab yeej VS_JUST_MY_CODE_DEBUGGING kom pab "Tsuas yog Kuv Code" hom hauv Visual Studio debugger thaum sau siv MSVC cl 19.05 thiab cov ntawv tshiab dua;
  • Lub FindBoost module tau raug kho dua tshiab, uas tam sim no ua haujlwm ntau dua hauv Config thiab Module hom nyob rau hauv muaj lwm cov kev tshawb nrhiav modules;
  • Cov lus () hais kom ua tam sim no txhawb hom CEEB TOOM, VERBOSE,
    DEBUG thiab TRACE;

  • Cov lus txib "export(PACKAGE)" tam sim no tsis muaj dab tsi tshwj tsis yog tias tau qhib los ntawm CMAKE_EXPORT_PACKAGE_REGISTRY hloov pauv.

Tau qhov twg los: opennet.ru

Ntxiv ib saib