Paglabas ng CMake 3.17.0 build system

Ipinasa ni paglabas ng isang cross-platform open build script generator CMake 3.17, 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:

  • May naidagdag na bagong assembly script generator batay sa Ninja toolkit - "Ninja Multi-Config", na naiiba sa lumang generator sa kakayahang magproseso ng ilang configuration ng assembly nang sabay-sabay.
  • Sa assembly script generator para sa Visual Studio lumitaw ang kakayahang tukuyin ang mga source file na nauugnay sa bawat configuration (per-config source).
  • Ang kakayahang magtakda ng mga meta parameter para sa CUDA ("cuda_std_03", "cuda_std_14", atbp.) ay naidagdag sa mga tool para sa pagtatakda ng mga parameter ng compiler (Compile Features).
  • Nagdagdag ng mga variable na "CMAKE_CUDA_RUNTIME_LIBRARY" at "CUDA_RUNTIME_LIBRARY" upang piliin ang uri ng mga runtime na library kapag gumagamit ng CUDA.
  • Idinagdag ang module na "FindCUDAToolkit" upang matukoy ang toolkit ng CUDA na available sa system nang hindi pinapagana ang wikang CUDA.
  • Idinagdag ang command na "--debug-find" sa cmake upang mag-output ng mga karagdagang nababasang diagnostic kapag nagsasagawa ng mga operasyon sa paghahanap. Para sa mga katulad na layunin, idinagdag ang variable na CMAKE_FIND_DEBUG_MODE.
  • Nagdagdag ng suporta para sa paghahanap ng mga CURL tool gamit ang mga configuration file na binuo ng cmake na "CURLConfig.cmake" sa module na "FindCURL". Upang huwag paganahin ang gawi na ito, ibinigay ang variable na CURL_NO_CURL_CMAKE.
  • Ang FindPython module ay nagdagdag ng kakayahang maghanap ng mga bahagi ng Python sa mga virtual na kapaligiran na pinamamahalaan gamit ang "conda".
  • Ang ctest utility ay nagdagdag ng "--no-tests=[error|ignore]" na mga opsyon upang tukuyin ang gawi sa kaso ng walang mga pagsubok at "--repeat" upang itakda ang mga kondisyon para sa muling pagpapatakbo ng mga pagsubok (hanggang sa pumasa, pagkatapos ng timeout).
  • Ang mga property na target ng assembly na INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES at INTERFACE_LINK_DEPENDS ay inililipat na ngayon sa mga panloob na dependency ng mga statically assembled na library.
  • Kapag ginagamit ang MinGW toolkit, ang paghahanap para sa mga DLL file na may command na find_library ay hindi pinagana bilang default (sa halip, ang default na pagtatangka ay mag-import ng ".dll.a" na mga aklatan).
  • Ang lohika para sa pagpili ng ninja utility sa Ninja generator ngayon ay hindi nakadepende sa pangalan ng executable file - ang unang ninja-build, ninja o samu utility na makikita sa mga path na tinukoy sa pamamagitan ng PATH environment variable ay ginagamit.
  • Nagdagdag ng "-E rm" na utos sa cmake na maaaring gamitin para mag-alis ng mga file at direktoryo sa halip na ang hiwalay na "-E remove" at "-E remove_directory" na command.

Pinagmulan: opennet.ru

Magdagdag ng komento