Release van het CMake 3.17.0-buildsysteem

Geïntroduceerd release van een platformonafhankelijke open build-scriptgenerator CMaak 3.17, dat fungeert als alternatief voor Autotools en wordt gebruikt in projecten zoals KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. De CMake-code is geschreven in C++ en wordt gedistribueerd onder de BSD-licentie.

CMake valt op door het bieden van een eenvoudige scripttaal, een manier om functionaliteit uit te breiden via modules, een minimaal aantal afhankelijkheden (geen binding aan M4, Perl of Python), caching-ondersteuning, de aanwezigheid van tools voor cross-compilatie, ondersteuning voor het genereren van build -bestanden voor een breed scala aan bouwsystemen en compilers, de aanwezigheid van ctest- en cpack-hulpprogramma's voor het definiëren van testscripts en bouwpakketten, cmake-gui-hulpprogramma voor het interactief instellen van bouwparameters.

De belangrijkste verbeteringen:

  • Er is een nieuwe assemblagescriptgenerator toegevoegd, gebaseerd op de Ninja-toolkit - "Ninja Multi-Config", die verschilt van de oude generator in de mogelijkheid om meerdere assemblageconfiguraties tegelijk te verwerken.
  • In de assemblagescriptgenerator voor Visual Studio verscheen de mogelijkheid om bronbestanden te definiëren die aan elke configuratie zijn gekoppeld (bronnen per configuratie).
  • De mogelijkheid om metaparameters voor CUDA in te stellen (“cuda_std_03”, “cuda_std_14”, etc.) is toegevoegd aan de tools voor het instellen van compilerparameters (Compile Features).
  • Variabelen "CMAKE_CUDA_RUNTIME_LIBRARY" en "CUDA_RUNTIME_LIBRARY" toegevoegd om het type runtime-bibliotheken te selecteren bij gebruik van CUDA.
  • De module "FindCUDAToolkit" toegevoegd om te bepalen welke CUDA-toolkit beschikbaar is op het systeem zonder de CUDA-taal in te schakelen.
  • De opdracht "--debug-find" is toegevoegd aan cmake om aanvullende leesbare diagnostische gegevens uit te voeren bij het uitvoeren van zoekbewerkingen. Voor soortgelijke doeleinden is de variabele CMAKE_FIND_DEBUG_MODE toegevoegd.
  • Ondersteuning toegevoegd voor het zoeken naar CURL-tools met behulp van door cmake gegenereerde configuratiebestanden “CURLConfig.cmake” aan de module “FindCURL”. Om dit gedrag uit te schakelen, is de variabele CURL_NO_CURL_CMAKE beschikbaar.
  • De FindPython-module heeft de mogelijkheid toegevoegd om naar Python-componenten te zoeken in virtuele omgevingen die worden beheerd met "conda".
  • Het ctest-hulpprogramma heeft de opties “--no-tests=[error|ignore]” toegevoegd om het gedrag te definiëren in het geval dat er geen tests zijn, en “--repeat” om de voorwaarden in te stellen voor het opnieuw uitvoeren van tests (tot-pass, na de time-out).
  • De assemblagedoeleigenschappen INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES en INTERFACE_LINK_DEPENDS worden nu overgedragen tussen de interne afhankelijkheden van statisch samengestelde bibliotheken.
  • Wanneer u de MinGW-toolkit gebruikt, is het zoeken naar DLL-bestanden met de opdracht find_library standaard uitgeschakeld (in plaats daarvan is de standaardpoging het importeren van ".dll.a"-bibliotheken).
  • De logica voor het selecteren van het ninja-hulpprogramma in de Ninja-generator is nu niet afhankelijk van de naam van het uitvoerbare bestand - het eerste ninja-build-, ninja- of samu-hulpprogramma dat wordt gevonden in de paden die zijn gedefinieerd via de omgevingsvariabele PATH wordt gebruikt.
  • Een "-E rm"-opdracht toegevoegd aan cmake die kan worden gebruikt om bestanden en mappen te verwijderen in plaats van de afzonderlijke opdrachten "-E remove" en "-E remove_directory".

Bron: opennet.ru

Voeg een reactie