CMake 3.15 рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░рд┐рд▓реАрдЬ

рднрдпреЛ рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдЦреБрд▓рд╛ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрдирд░реЗрдЯрд░рдХреЛ рд░рд┐рд▓реАрдЬ CMake 3.15..резред, рдЬрд╕рд▓реЗ Autotools рдХреЛ рд╡рд┐рдХрд▓реНрдкрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ рд░ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS рд░ рдмреНрд▓реЗрдВрдбрд░ рдЬрд╕реНрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред CMake рдХреЛрдб C++ рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ BSD рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

CMake рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ рднрд╛рд╖рд╛, рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо, рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛рдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ (M4, Perl рд╡рд╛ Python рд▓рд╛рдИ рдХреБрдиреИ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЫреИрди), рдХреНрдпрд╛рд╕рд┐рдЩ рд╕рдорд░реНрдерди, рдХреНрд░рд╕-рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐, рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫред рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд░ рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рджрд╛рдпрд░рд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдлрд╛рдЗрд▓рд╣рд░реВ, рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд░ рдирд┐рд░реНрдорд╛рдг рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ ctest рд░ cpack рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ, рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ cmake-gui рдЙрдкрдпреЛрдЧрд┐рддрд╛ред

рдореБрдЦреНрдп рд╕реБрдзрд╛рд░рд╣рд░реВ:

  • рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдирд┐рдиреНрдЬрд╛-рдЖрдзрд╛рд░рд┐рдд рдирд┐рд░реНрдорд╛рдг рд▓рд┐рдкрд┐ рдЬрдирд░реЗрдЯрд░рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ рддреЗрдЬрдПрдкреНрдкрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд;
  • Windows рдХреЛ рд▓рд╛рдЧрд┐ Clang рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ рдЬрд╕рд▓реЗ MSVC ABI рд╕рдБрдЧ рдмрдирд╛рдЙрдБрдЫ, рддрд░ GNU- рд╢реИрд▓реА рдЖрджреЗрд╢ рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ;
  • CMAKE_MSVC_RUNTIME_LIBRARY рд░ MSVC_RUNTIME_LIBRARY рдЪрд░рд╣рд░реВ MSVC ABI (MS Visual Studio) рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рд░рдирдЯрд╛рдЗрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдердкрд┐рдпреЛ;
  • MSVC рдЬрд╕реНрддрд╛ рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, CMAKE__FLAGS рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ "/W3" рдЬрд╕реНрддрд╛ рдЪреЗрддрд╛рд╡рдиреА рдирд┐рдпрдиреНрддреНрд░рдг рдЭрдгреНрдбрд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди рд░реЛрдХреНрдЫ;
  • рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ CMAKE__COMPILER_ID рд░ LANGUAGE рдЪрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рдХреНрд╖рд┐рдд рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬрдирд░реЗрдЯрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "COMPILE_LANG_AND_ID:" рдердкрд┐рдпреЛ;
  • рдЬреЗрдиреЗрд░реЗрдЯрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID рд░ PLATFORM_ID рд▓реЗ рдПрдЙрдЯрд╛ рд╕реВрдЪреАрдорд╛ рдПрдХрд▓ рдорд╛рди рдорд┐рд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкреНрдпреЛ рдЬрд╕рдХреЛ рддрддреНрд╡рд╣рд░реВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдорджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЫрдиреН;

  • рднреЗрд░рд┐рдПрдмрд▓ CMAKE_FIND_PACKAGE_PREFER_CONFIG рдердкрд┐рдпреЛ рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ find_package() рдХрд▓ рдЧрд░реНрджрд╛ рдкрд╣рд┐рд▓реЗ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдЦреЛрдЬреНрдиреЗрдЫ, рдпрджрд┐ рдЦреЛрдЬрдХрд░реНрддрд╛ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ рдкрдирд┐;
  • рдЗрдиреНрдЯрд░рдлреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, PUBLIC_HEADER рд░ PRIVATE_HEADER рдЧреБрдгрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рджреНрд╡рд╛рд░рд╛ PUBLIC_HEADER рд░ PRIVATE_HEADER рддрд░реНрдХрд╣рд░реВ рдкрд╛рд░рд┐рдд рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ (TARGETS) рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣реЗрдбрд░рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ;
  • CMAKE_VS_JUST_MY_CODE_DEBUGGING рдЪрд░ рд░ рд▓рдХреНрд╖рд┐рдд рдЧреБрдг VS_JUST_MY_CODE_DEBUGGING рдердкрд┐рдпреЛ рднрд┐рдЬреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдпреЛ рдбрд┐рдмрдЧрд░рдорд╛ MSVC cl 19.05 рд░ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрджрд╛ "рдХреЗрд╡рд▓ рдореЗрд░реЛ рдХреЛрдб" рдореЛрдб рд╕рдХреНрд╖рдо рдЧрд░реНрди;
  • FindBoost рдореЛрдбреНрдпреБрд▓ рдкреБрди: рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдЕрдм рдЕрдиреНрдп рдЦреЛрдЬ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдорд╛ рдХрдиреНрдлрд┐рдЧ рд░ рдореЛрдбреНрдпреБрд▓ рдореЛрдбрд╣рд░реВрдорд╛ рдердк рд╕рдордЧреНрд░ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ;
  • рд╕рдиреНрджреЗрд╢() рдЖрджреЗрд╢рд▓реЗ рдЕрдм NOTICE, VERBOSE, рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред
    рдбрд┐рдмрдЧ рд░ рдЯреНрд░реЗрд╕;

  • CMAKE_EXPORT_PACKAGE_REGISTRY рдЪрд░ рдорд╛рд░реНрдлрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдирдЧрд░реЗрд╕рдореНрдо "рдирд┐рд░реНрдпрд╛рдд(PACKAGE)" рдЖрджреЗрд╢рд▓реЗ рдЕрдм рдХреЗрд╣реА рдЧрд░реНрджреИрдиред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди