Wydanie systemów kompilacji CMake 3.21 i Meson 0.59

Przedstawiono wydanie wieloplatformowego generatora skryptów o otwartej kompilacji CMake 3.21, który działa jako alternatywa dla Autotools i jest używany w projektach takich jak KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake jest napisany w C++ i rozpowszechniany na licencji BSD.

CMake wyróżnia się zapewnianiem prostego języka skryptowego, sposobem rozszerzania funkcjonalności poprzez moduły, minimalną liczbą zależności (brak wiązania z M4, Perlem lub Pythonem), obsługą buforowania, obecnością narzędzi do kompilacji krzyżowej, obsługą generowania kompilacji pliki dla szerokiej gamy systemów kompilacji i kompilatorów, obecność narzędzi ctest i cpack do definiowania skryptów testowych i budowania pakietów, narzędzie cmake-gui do interaktywnego ustawiania parametrów kompilacji.

Główne ulepszenia:

  • Dodano pełną obsługę języka programowania Heterogeneous-Computing Interface for Portability (HIP), dialektu języka C++, którego zadaniem jest ułatwienie konwersji aplikacji CUDA na przenośny kod C++.
  • Dodano generator skryptów kompilacji dla Visual Studio 17 2022, oparty na Visual Studio 2022 Preview 1.1.
  • Generatory skryptów kompilacji Makefile i Ninja dodały właściwości C_LINKER_LAUNCHER i CXX_LINKER_LAUNCHER, których można użyć do uruchomienia narzędzi pomocniczych uruchamiających linker, takich jak analizatory statyczne. Generator uruchomi określone narzędzia, przekazując im nazwę linkera i jego argumenty.
  • We właściwościach „C_STANDARD” i „OBJC_STANDARD”, a także w narzędziach do ustawiania parametrów kompilatora (Compile Features) dodano obsługę specyfikacji C17 i C23.
  • Do narzędzia cmake dodano opcję „-toolchain”. > aby określić ścieżkę do zestawu narzędzi.
  • Podświetlone są rodzaje komunikatów wyświetlanych na terminalu.
  • Dodano obsługę kompilatora Fujitsu.
  • Polecenie „foreach()” zapewnia izolację zmiennych pętli w pętli.

Dodatkowo możemy odnotować wydanie systemu kompilacji Meson 0.59, który jest używany do budowania projektów takich jak X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK. Kod Mesona napisany jest w języku Python i jest objęty licencją Apache 2.0. Obsługuje kompilację krzyżową i budowanie na systemach Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows przy użyciu GCC, Clang, Visual Studio i innych kompilatorów. Możliwe jest budowanie projektów w różnych językach programowania, m.in. C, C++, Fortran, Java i Rust. Zamiast narzędzia make podczas budowania domyślnie używany jest zestaw narzędzi Ninja, ale można również używać innych backendów, takich jak xcode i VisualStudio.

System posiada wbudowany wieloplatformowy moduł obsługi zależności, który pozwala używać Mesona do budowania pakietów dla dystrybucji. Reguły asemblera są określone w uproszczonym, specyficznym dla domeny języku, są bardzo czytelne i zrozumiałe dla użytkownika (zgodnie z zamierzeniami autorów programista powinien poświęcić minimum czasu na pisanie reguł). Obsługiwany jest tryb kompilacji przyrostowej, w którym odbudowywane są tylko komponenty bezpośrednio związane ze zmianami wprowadzonymi od czasu ostatniej kompilacji. Meson można wykorzystać do generowania powtarzalnych kompilacji, w których uruchomienie kompilacji w różnych środowiskach skutkuje wygenerowaniem całkowicie identycznych plików wykonywalnych.

Główne innowacje Mesona 0.59:

  • Dodano obsługę języka Cython (zaawansowana wersja Pythona mająca na celu uproszczenie integracji z kodem C).
  • Dodano słowa kluczowe „unescaped_variables” i „unescaped_uninstalled_variables”, aby zdefiniować zmienne w pkgconfig bez uciekania spacji znakiem „\”.
  • Dodano obsługę wrc (Kompilator zasobów Wine).
  • Zaimplementowano możliwość generowania projektów dla Visual Studio 2012 i Visual Studio 2013.
  • Wszystkie polecenia związane z podprojektami domyślnie uruchamiają teraz każdy podprojekt równolegle. Liczbę procesów równoległych określa parametr „--num-process”.

Źródło: opennet.ru

Dodaj komentarz