Release av byggsystemet CMake 3.17.0

Introducerad release av en plattformsöverskridande öppen skriptgenerator CMake 3.17, som fungerar som ett alternativ till Autotools och används i projekt som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS och Blender. CMake-koden är skriven i C++ och distribueras under BSD-licensen.

CMake är känd för att tillhandahålla ett enkelt skriptspråk, ett sätt att utöka funktionaliteten genom moduler, ett minimalt antal beroenden (ingen bindning till M4, Perl eller Python), cachingstöd, närvaron av verktyg för korskompilering, stöd för att generera build filer för ett brett utbud av byggsystem och kompilatorer, närvaroverktygen ctest och cpack för att definiera testskript och byggpaket, verktyget cmake-gui för att interaktivt ställa in byggparametrar.

Den huvudsakliga förbättringar:

  • En ny assembly script generator baserad på Ninja toolkit har lagts till - "Ninja Multi-Config", som skiljer sig från den gamla generatorn i förmågan att behandla flera assembler konfigurationer samtidigt.
  • I assemblerskriptgeneratorn för Visual Studio dök möjligheten att definiera källfiler som är associerade med varje konfiguration (per-config-källor).
  • Möjligheten att ställa in metaparametrar för CUDA ("cuda_std_03", "cuda_std_14", etc.) har lagts till i verktygen för att ställa in kompilatorparametrar (Compile Features).
  • Lade till variablerna "CMAKE_CUDA_RUNTIME_LIBRARY" och "CUDA_RUNTIME_LIBRARY" för att välja typ av runtime-bibliotek när du använder CUDA.
  • Lade till modulen "FindCUDAToolkit" för att fastställa vilken CUDA-verktygssats som är tillgänglig på systemet utan att aktivera CUDA-språket.
  • Lade till kommandot "--debug-find" för att skapa ytterligare läsbar diagnostik när du utför sökoperationer. För liknande ändamål har variabeln CMAKE_FIND_DEBUG_MODE lagts till.
  • Lade till stöd för att söka efter CURL-verktyg med cmake-genererade konfigurationsfiler "CURLConfig.cmake" till modulen "FindCURL". För att inaktivera detta beteende tillhandahålls variabeln CURL_NO_CURL_CMAKE.
  • FindPython-modulen har lagt till möjligheten att söka efter Python-komponenter i virtuella miljöer som hanteras med "conda".
  • Verktyget ctest har lagt till alternativen "--no-tests=[error|ignore]" för att definiera beteendet i fallet med inga tester och "--repeat" för att ställa in villkoren för att köra tester igen (tills-godkänt, efter timeout).
  • Sammansättningsmålegenskaperna INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES och INTERFACE_LINK_DEPENDS överförs nu till de interna beroenden hos statiskt sammansatta bibliotek.
  • När du använder MinGW-verktygslådan är sökningen efter DLL-filer med kommandot find_library inaktiverad som standard (istället är standardförsöket att importera ".dll.a"-bibliotek).
  • Logiken för att välja ninja-verktyget i Ninja-generatorn beror nu inte på namnet på den körbara filen - det första ninja-build-, ninja- eller samu-verktyget som finns i sökvägarna definierade genom PATH-miljövariabeln används.
  • Lade till ett "-E rm"-kommando till cmake som kan användas för att ta bort filer och kataloger istället för de separata kommandona "-E remove" och "-E remove_directory".

Källa: opennet.ru

Lägg en kommentar