Utgivelse av CMake 3.17.0 byggesystem

Introdusert utgivelse av en åpen skriptgenerator på tvers av plattformer CMake 3.17, som fungerer som et alternativ til Autotools og brukes i prosjekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribuert under BSD-lisensen.

CMake er kjent for å tilby et enkelt skriptspråk, et middel for å utvide funksjonalitet gjennom moduler, et minimalt antall avhengigheter (ingen binding til M4, Perl eller Python), caching-støtte, tilstedeværelsen av verktøy for krysskompilering, støtte for å generere bygg filer for et bredt spekter av byggesystemer og kompilatorer, verktøyene tilstedeværelse ctest og cpack for å definere testskript og byggepakker, cmake-gui-verktøy for interaktiv innstilling av byggeparametere.

Den viktigste forbedringer:

  • En ny monteringsskriptgenerator basert på Ninja-verktøysettet er lagt til - "Ninja Multi-Config", som skiller seg fra den gamle generatoren i muligheten til å behandle flere monteringskonfigurasjoner samtidig.
  • I monteringsskriptgeneratoren for Visual Studio dukket opp muligheten til å definere kildefiler knyttet til hver konfigurasjon (per-konfigurasjonskilder).
  • Muligheten til å sette metaparametere for CUDA ("cuda_std_03", "cuda_std_14", etc.) er lagt til verktøyene for å sette kompilatorparametere (Compile Features).
  • Lagt til variablene "CMAKE_CUDA_RUNTIME_LIBRARY" og "CUDA_RUNTIME_LIBRARY" for å velge type kjøretidsbibliotek ved bruk av CUDA.
  • Lagt til "FindCUDAToolkit"-modulen for å bestemme CUDA-verktøysettet som er tilgjengelig på systemet uten å aktivere CUDA-språket.
  • Lagt til "--debug-find"-kommando for å cmake å sende ut ekstra lesbar diagnostikk når du utfører søkeoperasjoner. For lignende formål er CMAKE_FIND_DEBUG_MODE-variabelen lagt til.
  • Lagt til støtte for søk etter CURL-verktøy ved å bruke cmake-genererte konfigurasjonsfiler "CURLConfig.cmake" til "FindCURL"-modulen. For å deaktivere denne virkemåten, er CURL_NO_CURL_CMAKE-variabelen gitt.
  • FindPython-modulen har lagt til muligheten til å søke etter Python-komponenter i virtuelle miljøer administrert ved hjelp av "conda".
  • ctest-verktøyet har lagt til "--no-tests=[error|ignore]"-alternativene for å definere oppførselen i tilfelle ingen tester og "--repeat" for å angi betingelsene for å kjøre tester på nytt (til-bestått, etter timeout).
  • Sammenstillingsmålegenskapene INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES og INTERFACE_LINK_DEPENDS er nå overført til de interne avhengighetene til statisk sammensatte biblioteker.
  • Når du bruker MinGW-verktøysettet, er søket etter DLL-filer med kommandoen find_library deaktivert som standard (i stedet er standardforsøket å importere ".dll.a"-biblioteker).
  • Logikken for å velge ninja-verktøyet i Ninja-generatoren avhenger nå ikke av navnet på den kjørbare filen - det første ninja-bygget, ninja- eller samu-verktøyet som finnes i banene som er definert gjennom PATH-miljøvariabelen, brukes.
  • Lagt til en "-E rm"-kommando til cmake som kan brukes til å fjerne filer og kataloger i stedet for de separate kommandoene "-E remove" og "-E remove_directory".

Kilde: opennet.ru

Legg til en kommentar