Udgivelse af CMake 3.17.0 byggesystem

Introduceret frigivelse af en open build-scriptgenerator på tværs af platforme CMag 3.17, der fungerer som et alternativ til Autoværktøjer og bruges i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueret under BSD-licensen.

CMake er kendt for at levere et simpelt scriptsprog, et middel til at udvide funktionaliteten gennem moduler, et minimalt antal afhængigheder (ingen binding til M4, Perl eller Python), caching-understøttelse, tilstedeværelsen af ​​værktøjer til krydskompilering, understøttelse af generering af build filer til en lang række byggesystemer og compilere, tilstedeværelse ctest og cpack hjælpeprogrammer til at definere test scripts og byggepakker, cmake-gui hjælpeprogram til interaktiv indstilling af build parametre.

The main forbedring:

  • En ny assembly script generator baseret på Ninja toolkit er blevet tilføjet - "Ninja Multi-Config", som adskiller sig fra den gamle generator i evnen til at behandle flere assembly konfigurationer på én gang.
  • I assembly script generatoren til Visual Studio optrådte evnen til at definere kildefiler, der er knyttet til hver konfiguration (per-config-kilder).
  • Muligheden for at indstille metaparametre for CUDA ("cuda_std_03", "cuda_std_14", etc.) er blevet tilføjet til værktøjerne til indstilling af compiler-parametre (Compile Features).
  • Tilføjede variabler "CMAKE_CUDA_RUNTIME_LIBRARY" og "CUDA_RUNTIME_LIBRARY" for at vælge typen af ​​runtime-biblioteker ved brug af CUDA.
  • Tilføjet "FindCUDAToolkit"-modulet for at bestemme CUDA-værktøjssættet tilgængeligt på systemet uden at aktivere CUDA-sproget.
  • Tilføjet "--debug-find"-kommando til cmake at udlæse yderligere læsbar diagnostik, når der udføres søgeoperationer. Til lignende formål er CMAKE_FIND_DEBUG_MODE-variablen blevet tilføjet.
  • Tilføjet understøttelse for at søge efter CURL-værktøjer ved hjælp af cmake-genererede konfigurationsfiler "CURLConfig.cmake" til "FindCURL"-modulet. For at deaktivere denne adfærd er CURL_NO_CURL_CMAKE-variablen angivet.
  • FindPython-modulet har tilføjet muligheden for at søge efter Python-komponenter i virtuelle miljøer, der styres ved hjælp af "conda".
  • ctest-værktøjet har tilføjet "--no-tests=[error|ignore]" mulighederne for at definere adfærden i tilfælde af ingen test og "--repeat" for at indstille betingelserne for genkøring af tests (indtil bestået, efter timeout).
  • INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES og INTERFACE_LINK_DEPENDS buildmålegenskaberne er nu inkluderet blandt de interne afhængigheder af statisk byggede biblioteker.
  • Når du bruger MinGW-værktøjssættet, er søgningen efter DLL-filer med kommandoen find_library deaktiveret som standard (i stedet er standardforsøget at importere ".dll.a"-biblioteker).
  • Logikken for at vælge ninja-værktøjet i Ninja-generatoren afhænger nu ikke af navnet på den eksekverbare fil - det første ninja-build, ninja- eller samu-værktøj, der findes i stierne defineret gennem PATH-miljøvariablen, bruges.
  • Tilføjet en "-E rm"-kommando til cmake, der kan bruges til at fjerne filer og mapper i stedet for de separate kommandoer "-E remove" og "-E remove_directory".

Kilde: opennet.ru

Tilføj en kommentar