Paglabas ng CMake 3.15 build system

naganap paglabas ng isang cross-platform open build script generator CMake 3.15, na nagsisilbing alternatibo sa Autotools at ginagamit sa mga proyekto tulad ng KDE, LLVM/Clang, MySQL, MariaDB, ReactOS at Blender. Ang CMake code ay nakasulat sa C++ at ipinamahagi sa ilalim ng lisensya ng BSD.

Ang CMake ay kapansin-pansin sa pagbibigay ng isang simpleng scripting language, isang paraan ng pagpapalawak ng functionality sa pamamagitan ng mga module, isang minimal na bilang ng mga dependency (walang binding sa M4, Perl o Python), suporta sa pag-cache, pagkakaroon ng mga tool para sa cross-compilation, suporta para sa pagbuo ng build mga file para sa malawak na hanay ng mga build system at compiler, ang presensya ng ctest at cpack na mga utility para sa pagtukoy ng mga test script at mga building package, cmake-gui utility para sa interactive na pagtatakda ng mga parameter ng build.

Ang pangunahing mga pagpapabuti:

  • Ang paunang suporta sa wika ay naidagdag sa Ninja-based build script generator matulin, binuo ng Apple;
  • Nagdagdag ng suporta para sa isang variant ng Clang compiler para sa Windows na bubuo gamit ang MSVC ABI, ngunit gumagamit ng GNU-style na mga opsyon sa command line;
  • Nagdagdag ng mga variable na CMAKE_MSVC_RUNTIME_LIBRARY at MSVC_RUNTIME_LIBRARY upang pumili ng mga runtime na library na ginagamit ng mga compiler batay sa MSVC ABI (MS Visual Studio);
  • Para sa mga compiler tulad ng MSVC, ang CMAKE__FLAGS bilang default ay humihinto sa paglilista ng mga flag ng kontrol ng babala gaya ng "/W3";
  • Nagdagdag ng generator expression na "COMPILE_LANG_AND_ID:" upang tukuyin ang mga opsyon ng compiler para sa mga target na file, gamit ang CMAKE__COMPILER_ID at LANGUAGE na mga variable para sa bawat code file;
  • Sa mga expression ng generator na C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    Nagdagdag ang COMPILE_LANG_AND_ID at PLATFORM_ID ng suporta para sa pagtutugma ng isang value sa isang listahan na ang mga elemento ay pinaghihiwalay ng kuwit;

  • Nagdagdag ng variable na CMAKE_FIND_PACKAGE_PREFER_CONFIG upang ang pagtawag sa find_package() ay hahanapin muna ang configuration file ng package, kahit na may available na finder;
  • Para sa mga library ng interface, idinagdag ang suporta para sa pagtatakda ng PUBLIC_HEADER at PRIVATE_HEADER na mga katangian, kung saan maaaring itakda ang mga header gamit ang install(TARGETS) command sa pamamagitan ng pagpasa sa PUBLIC_HEADER at PRIVATE_HEADER na mga argumento;
  • Nagdagdag ng variable na CMAKE_VS_JUST_MY_CODE_DEBUGGING at target na property na VS_JUST_MY_CODE_DEBUGGING upang paganahin ang mode na "Just My Code" sa Visual Studio debugger kapag nag-compile gamit ang MSVC cl 19.05 at mas bagong mga bersyon;
  • Ang FindBoost module ay muling idinisenyo, na ngayon ay gumagana nang mas holistically sa Config at Module mode sa pagkakaroon ng iba pang mga module sa paghahanap;
  • Sinusuportahan na ngayon ng message() command ang mga uri ng NOTICE, VERBOSE,
    DEBUG at TRACE;

  • Wala na ngayong ginagawa ang command na "export(PACKAGE)" maliban kung tahasang pinagana sa pamamagitan ng variable na CMAKE_EXPORT_PACKAGE_REGISTRY.

Pinagmulan: opennet.ru

Magdagdag ng komento