Release van het CMake 3.15-buildsysteem

vond plaats release van een platformonafhankelijke open build-scriptgenerator CMaak 3.15, 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:

  • Ondersteuning voor initiële talen is toegevoegd aan de op Ninja gebaseerde build-scriptgenerator Swift, ontwikkeld door Apple;
  • Ondersteuning toegevoegd voor een variant van de Clang-compiler voor Windows die bouwt met de MSVC ABI, maar opdrachtregelopties in GNU-stijl gebruikt;
  • CMAKE_MSVC_RUNTIME_LIBRARY en MSVC_RUNTIME_LIBRARY variabelen toegevoegd om runtime bibliotheken te selecteren die worden gebruikt door compilers op basis van de MSVC ABI (MS Visual Studio);
  • Voor compilers zoals MSVC stopt CMAKE__FLAGS standaard met het weergeven van waarschuwingsbesturingsvlaggen zoals "/W3";
  • Een generatorexpressie "COMPILE_LANG_AND_ID:" toegevoegd om compileropties voor doelbestanden te definiëren, met behulp van de variabelen CMAKE__COMPILER_ID en LANGUAGE voor elk codebestand;
  • In de generatorexpressies C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID en PLATFORM_ID hebben ondersteuning toegevoegd voor het matchen van een enkele waarde met een lijst waarvan de elementen zijn gescheiden door een komma;

  • Variabele CMAKE_FIND_PACKAGE_PREFER_CONFIG toegevoegd zodat het aanroepen van find_package() eerst naar het configuratiebestand van het pakket zoekt, zelfs als er een finder beschikbaar is;
  • Voor interfacebibliotheken is ondersteuning toegevoegd voor het instellen van de eigenschappen PUBLIC_HEADER en PRIVATE_HEADER, waarmee headers kunnen worden ingesteld met behulp van de opdracht install(TARGETS) door de argumenten PUBLIC_HEADER en PRIVATE_HEADER door te geven;
  • CMAKE_VS_JUST_MY_CODE_DEBUGGING variabele en doeleigenschap VS_JUST_MY_CODE_DEBUGGING toegevoegd om de "Just My Code"-modus in de Visual Studio-foutopsporing in te schakelen bij het compileren met MSVC cl 19.05 en nieuwere versies;
  • De FindBoost-module is opnieuw ontworpen en werkt nu holistischer in de Config- en Module-modi in de aanwezigheid van andere zoekmodules;
  • Het message() commando ondersteunt nu de typen NOTICE, VERBOSE,
    DEBUG en TRACE;

  • De opdracht "export(PACKAGE)" doet nu niets tenzij expliciet ingeschakeld via de variabele CMAKE_EXPORT_PACKAGE_REGISTRY.

Bron: opennet.ru

Voeg een reactie