Udgivelsen af CMake 3.17.0

Præsenteret udgivelsen af den tværplatforms åbne build-script generator CMake 3.17, der fungerer som et alternativ til Autotools og anvendes i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueres under BSD-licensen.

CMake er bemærkelsesværdigt for at tilbyde et simpelt script-sprog, udvidelsesmuligheder gennem moduler, et minimum af afhængigheder (ingen binding til M4, Perl eller Python), support for caching, tilgængelighed af værktøjer til tværkompilering, samt generering af build-filer for en bred vifte af build-systemer og compiler, plus værktøjerne ctest og cpack til test-script og pakkeopbygning, samt cmake-gui til interaktiv konfiguration af byggeparametre.

Vigtige forbedringer:

  • Der er tilføjet en ny generator til bygge scripts baseret på Ninja-værktøjet - "Ninja Multi-Config", der adskiller sig fra den gamle generator ved at kunne håndtere flere byggekonfigurationer på én gang.
  • I bygge script-generatoren til Visual Studio er der kommet muligheden for at definere kildefiler, der er knyttet til hver konfiguration (per-config sources).
  • I værktøjerne til opsætning af kompilatorindstillinger (Compile Features) er der tilføjet mulighed for at angive meta-parametre for CUDA ("cuda_std_03", "cuda_std_14" osv.).
  • Der er tilføjet variablerne "CMAKE_CUDA_RUNTIME_LIBRARY" og "CUDA_RUNTIME_LIBRARY" til at vælge typen af runtime-biblioteker ved brug af CUDA.
  • Der er tilføjet modulet "FindCUDAToolkit" til at identificere det tilgængelige CUDA-værktøj i systemet uden at aktivere CUDA-sproget.
  • I cmake-værktøjet er der tilføjet kommandoen "—debug-find" for at udskrive yderligere læsbar diagnosticering, når der udføres søgeoperationer. En tilsvarende variabel CMAKE_FIND_DEBUG_MODE er også tilføjet.
  • I modulet "FindCURL" er der tilføjet support til at finde CURL-værktøjet ved hjælp af de genererede cmake-konfigurationsfiler "CURLConfig.cmake". For at deaktivere denne opførsel er der en variabel CURL_NO_CURL_CMAKE.
  • I FindPython-modulet er der tilføjet mulighed for at finde Python-komponenter i virtuelle miljøer, der styres ved hjælp af "conda".
  • I ctest-værktøjet er der tilføjet mulighederne "—no-tests=[error|ignore]" for at bestemme opførslen i tilfælde af manglende tests og "—repeat" for at angive betingelser for genkørsel af tests (until-pass, after-timeout).
  • Der er sikret overførsel af egenskaber ved bygge-målet INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES og INTERFACE_LINK_DEPENDS blandt interne afhængigheder af statisk bygget biblioteker.
  • Ved brug af MinGW-værktøjet er søgningen efter DLL-filer som standard deaktiveret via kommandoen find_library (i stedet forsøges der som standard at importere "*.dll.a" biblioteker).
  • Logikken til valg af ninja-værktøjet i Ninja-generatoren afhænger nu ikke af navnet på den eksekverbare fil - den bruger det første tilgængelige ninja-build, ninja eller samu-værktøj, der findes i de stier, der er defineret gennem miljøvariablen PATH.
  • I cmake-værktøjet er der tilføjet kommandoen "-E rm", som kan bruges til at slette filer og mapper i stedet for at bruge separate kommandoer "-E remove" og "-E remove_directory".

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster