Release van buildsystemen CMake 3.21 en Meson 0.59

Gepresenteerd wordt de release van de platformonafhankelijke open build scriptgenerator CMake 3.21, die fungeert als een 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 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.

Belangrijkste verbeteringen:

  • Volledige ondersteuning toegevoegd voor de programmeertaal Heterogeneous-Computing Interface for Portability (HIP), een dialect van de C++-taal, bedoeld om het gemakkelijker te maken om CUDA-applicaties naar draagbare C++-code te converteren.
  • Build-scriptgenerator toegevoegd voor Visual Studio 17 2022, gebaseerd op Visual Studio 2022 Preview 1.1.
  • De Makefile- en Ninja-buildscriptgeneratoren hebben de eigenschappen C_LINKER_LAUNCHER en CXX_LINKER_LAUNCHER toegevoegd, die kunnen worden gebruikt om hulpprogramma's te starten die de linker starten, zoals statische analysatoren. De generator voert de opgegeven hulpprogramma's uit en geeft hen de naam van de linker en zijn argumenten door.
  • In de eigenschappen “C_STANDARD” en “OBJC_STANDARD”, evenals in de tools voor het instellen van compilerparameters (Compile Features), is ondersteuning voor de C17- en C23-specificaties toegevoegd.
  • De optie “—toolchain” is toegevoegd aan het cmake-hulpprogramma > om het pad naar de toolkit te bepalen.
  • De soorten berichten die op de terminal worden weergegeven, zijn gemarkeerd.
  • Ondersteuning toegevoegd voor de Fujitsu-compiler.
  • Het commando "foreach()" zorgt ervoor dat lusvariabelen binnen een lus worden geïsoleerd.

Daarnaast kunnen we de release noteren van het Meson 0.59-buildsysteem, dat wordt gebruikt om projecten te bouwen zoals X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK. De code van Meson is geschreven in Python en valt onder de Apache 2.0-licentie. Ondersteunt cross-compilatie en voortbouwen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows met behulp van GCC, Clang, Visual Studio en andere compilers. Het is mogelijk om projecten te bouwen in verschillende programmeertalen, waaronder C, C++, Fortran, Java en Rust. In plaats van het make-hulpprogramma wordt bij het bouwen standaard de Ninja-toolkit gebruikt, maar ook andere backends zoals xcode en VisualStudio kunnen worden gebruikt.

Het systeem heeft een ingebouwde afhankelijkheidshandler voor meerdere platforms waarmee u Meson kunt gebruiken om pakketten voor distributies te bouwen. De montageregels zijn gespecificeerd in een vereenvoudigde domeinspecifieke taal, zijn zeer leesbaar en begrijpelijk voor de gebruiker (zoals bedoeld door de auteurs, moet de ontwikkelaar een minimum aan tijd besteden aan het schrijven van regels). De incrementele bouwmodus wordt ondersteund, waarin alleen componenten die rechtstreeks verband houden met wijzigingen die zijn aangebracht sinds de laatste build, opnieuw worden opgebouwd. Meson kan worden gebruikt om herhaalbare builds te genereren, waarbij het uitvoeren van de build in verschillende omgevingen resulteert in het genereren van volledig identieke uitvoerbare bestanden.

Belangrijkste innovaties van Meson 0.59:

  • Ondersteuning toegevoegd voor de Cython-taal (een geavanceerde versie van Python gericht op het vereenvoudigen van de integratie met C-code).
  • Sleutelwoorden "unescaped_variables" en "unescaped_uninstalled_variables" toegevoegd om variabelen in pkgconfig te definiëren zonder spaties met het teken "\" te laten ontsnappen.
  • Ondersteuning toegevoegd voor wrc (Wine Resource Compiler).
  • De mogelijkheid om projecten te genereren voor Visual Studio 2012 en Visual Studio 2013 is geïmplementeerd.
  • Alle subprojectgerelateerde opdrachten voeren nu elk subproject standaard parallel uit. Het aantal parallelle processen wordt bepaald door de parameter “--num-processes”.

Bron: opennet.ru

Voeg een reactie