Vrystelling van CMake 3.17.0-boustelsel

Bekendgestel vrystelling van 'n kruis-platform oopbou script generator CMaak 3.17, wat dien as 'n alternatief vir Autotools en word gebruik in projekte soos KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. Die CMake-kode is in C++ geskryf en onder die BSD-lisensie versprei.

CMake is opvallend vir die verskaffing van 'n eenvoudige skriftaal, 'n manier om funksionaliteit deur modules uit te brei, 'n minimale aantal afhanklikhede (geen binding aan M4, Perl of Python), kasondersteuning, die teenwoordigheid van gereedskap vir kruissamestelling, ondersteuning vir die generering van bou. lêers vir 'n wye reeks boustelsels en samestellers, die teenwoordigheid ctest- en cpack-hulpmiddels vir die definisie van toetsskrifte en boupakkette, cmake-gui-hulpmiddel om bouparameters interaktief in te stel.

Die belangrikste verbeterings:

  • 'n Nuwe samestellingskripopwekker gebaseer op die Ninja-gereedskapstel is bygevoeg - "Ninja Multi-Config", wat verskil van die ou kragopwekker in die vermoë om verskeie samestellingkonfigurasies tegelyk te verwerk.
  • In die samestelling script generator vir Visual Studio verskyn die vermoë om bronlêers te definieer wat met elke konfigurasie geassosieer word (per-konfigurasie-bronne).
  • Die vermoë om metaparameters vir CUDA te stel (“cuda_std_03”, “cuda_std_14”, ens.) is bygevoeg by die gereedskap vir die opstel van samestellerparameters (samestel kenmerke).
  • Het veranderlikes "CMAKE_CUDA_RUNTIME_LIBRARY" en "CUDA_RUNTIME_LIBRARY" bygevoeg om die tipe looptydbiblioteke te kies wanneer CUDA gebruik word.
  • Het die "FindCUDAToolkit"-module bygevoeg om die CUDA-gereedskapstel wat op die stelsel beskikbaar is, te bepaal sonder om die CUDA-taal te aktiveer.
  • Bygevoeg "--debug-find" opdrag om cmake om bykomende leesbare diagnostiek uit te voer wanneer soekbewerkings uitgevoer word. Vir soortgelyke doeleindes is die CMAKE_FIND_DEBUG_MODE veranderlike bygevoeg.
  • Bygevoeg ondersteuning vir soek na CURL gereedskap met behulp van cmake-gegenereerde konfigurasie lêers "CURLConfig.cmake" by die "FindCURL" module. Om hierdie gedrag te deaktiveer, word die CURL_NO_CURL_CMAKE veranderlike verskaf.
  • Die FindPython-module het die vermoë bygevoeg om na Python-komponente te soek in virtuele omgewings wat met “conda” bestuur word.
  • Die ctest-nutsding het die “--no-tests=[error|ignore]”-opsies bygevoeg om die gedrag te definieer in die geval van geen toetse en “--repeat” om die voorwaardes te stel vir herhaling van toetse (tot-slaag, na-time-out).
  • Die samestellingteikeneienskappe INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES en INTERFACE_LINK_DEPENDS word nou onder die interne afhanklikhede van staties saamgestelde biblioteke oorgedra.
  • Wanneer die MinGW-nutsmiddelstel gebruik word, is die soektog na DLL-lêers met die find_library-opdrag by verstek gedeaktiveer (in plaas daarvan is die verstekpoging om ".dll.a"-biblioteke in te voer).
  • Die logika om die ninja-nutsmiddel in die Ninja-generator te kies, hang nou nie af van die naam van die uitvoerbare lêer nie - die eerste ninja-bou-, ninja- of samu-hulpmiddel wat gevind word in die paaie wat deur die PATH-omgewingsveranderlike gedefinieer is, word gebruik.
  • Het 'n "-E rm"-opdrag by cmake bygevoeg wat gebruik kan word om lêers en gidse te verwyder in plaas van die aparte "-E remove" en "-E remove_directory"-opdragte.

Bron: opennet.ru

Voeg 'n opmerking