Release av byggsystem CMake 3.21 och Meson 0.59

Presenteras är releasen av den plattformsoberoende öppna skriptgeneratorn CMake 3.21, 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.

Huvudsakliga förbättringar:

  • Lade till fullt stöd för programmeringsspråket Heterogeneous-Computing Interface for Portability (HIP), en dialekt av C++-språket som syftar till att göra det lättare att konvertera CUDA-applikationer till bärbar C++-kod.
  • Lade till byggskriptgenerator för Visual Studio 17 2022, baserat på Visual Studio 2022 Preview 1.1.
  • Skriptgeneratorerna Makefile och Ninja har lagt till egenskaperna C_LINKER_LAUNCHER och CXX_LINKER_LAUNCHER, som kan användas för att starta hjälpverktyg som startar länken, såsom statiska analysatorer. Generatorn kommer att köra de angivna verktygen och ge dem namnet på länken och dess argument.
  • I egenskaperna "C_STANDARD" och "OBJC_STANDARD", samt i verktygen för att ställa in kompilatorparametrar (Compile Features), har stöd för C17- och C23-specifikationerna lagts till.
  • Alternativet "—verktygskedja" har lagts till i cmake-verktyget > för att bestämma sökvägen till verktygslådan.
  • De typer av meddelanden som visas på terminalen är markerade.
  • Lade till stöd för Fujitsu-kompilatorn.
  • Kommandot "foreach()" säkerställer att loopvariabler är isolerade i en loop.

Dessutom kan vi notera lanseringen av Meson 0.59 byggsystem, som används för att bygga projekt som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME och GTK. Mesons kod är skriven i Python och är licensierad under Apache 2.0-licensen. Stöder korskompilering och byggnad på Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS och Windows med GCC, Clang, Visual Studio och andra kompilatorer. Det är möjligt att bygga projekt i olika programmeringsspråk, inklusive C, C++, Fortran, Java och Rust. Istället för make-verktyget används Ninja-verktygslådan som standard när man bygger, men andra backends som xcode och VisualStudio kan också användas.

Systemet har en inbyggd beroendehanterare för flera plattformar som låter dig använda Meson för att bygga paket för distributioner. Sammansättningsreglerna är specificerade på ett förenklat domänspecifikt språk, är mycket läsbara och förståeliga för användaren (som författarna avsett bör utvecklaren lägga minst tid på att skriva regler). Inkrementellt byggläge stöds, där endast komponenter som är direkt relaterade till ändringar som gjorts sedan den senaste byggnaden byggs om. Meson kan användas för att generera repeterbara builds, där körning av builden i olika miljöer resulterar i generering av helt identiska körbara filer.

De viktigaste innovationerna i Meson 0.59:

  • Lade till stöd för Cython-språket (en avancerad version av Python som syftar till att förenkla integrationen med C-kod).
  • Lade till nyckelorden "unescaped_variables" och "unescaped_uninstalled_variables" för att definiera variabler i pkgconfig utan att skymta mellanslag med tecknet "\".
  • Lade till stöd för wrc (Wine Resource Compiler).
  • Möjligheten att generera projekt för Visual Studio 2012 och Visual Studio 2013 har implementerats.
  • Alla delprojektrelaterade kommandon kör nu varje delprojekt parallellt som standard. Antalet parallella processer bestäms av parametern "--num-processer".

Källa: opennet.ru

Lägg en kommentar