CMake 3.21 və Meson 0.59 qurma sistemlərinin buraxılışı

Autotools-a alternativ kimi çıxış edən və KDE, LLVM/Clang, MySQL, MariaDB, ReactOS və Blender kimi layihələrdə istifadə olunan cross-platforma açıq qurma skript generatorunun CMake 3.21 buraxılışı təqdim olunur. CMake kodu C++ dilində yazılmışdır və BSD lisenziyası altında paylanmışdır.

CMake sadə skript dili, modullar vasitəsilə funksionallığı genişləndirmək vasitəsi, minimal sayda asılılıq (M4, Perl və ya Python ilə əlaqə yoxdur), keşləmə dəstəyi, çarpaz kompilyasiya üçün alətlərin mövcudluğu, quruluş yaratmaq üçün dəstək ilə diqqəti çəkir. geniş çeşidli qurma sistemləri və kompilyatorları üçün fayllar, test skriptlərini və tikinti paketlərini təyin etmək üçün mövcud ctest və cpack utilitləri, qurma parametrlərini interaktiv şəkildə təyin etmək üçün cmake-gui yardım proqramı.

Əsas təkmilləşdirmələr:

  • CUDA proqramlarını portativ C++ koduna çevirməyi asanlaşdırmağa yönəlmiş C++ dilinin dialekti olan Portativlik üçün Heterojen Hesablama İnterfeysi (HIP) proqramlaşdırma dili üçün tam dəstək əlavə edildi.
  • Visual Studio 17 2022 üçün Visual Studio 2022 Preview 1.1 əsasında qurulmuş skript generatoru əlavə edildi.
  • Makefile və Ninja qurma skript generatorları C_LINKER_LAUNCHER və CXX_LINKER_LAUNCHER xassələrini əlavə etdi, bunlardan statik analizatorlar kimi əlaqələndiricini işə salan köməkçi utilitləri işə salmaq üçün istifadə oluna bilər. Generator göstərilən kommunalları işlədəcək, onlara linkerin adını və onun arqumentlərini ötürəcək.
  • “C_STANDARD” və “OBJC_STANDARD” xassələrində, həmçinin kompilyator parametrlərini təyin etmək üçün alətlərdə (Tərtib etmə xüsusiyyətləri) C17 və C23 spesifikasiyası üçün dəstək əlavə edilmişdir.
  • Alətlər zəncirinə gedən yolu müəyyən etmək üçün cmake yardım proqramına “--toolchain > seçimi əlavə edildi.
  • Terminalda göstərilən mesaj növləri vurğulanır.
  • Fujitsu kompilyatoru üçün əlavə dəstək.
  • "Foreach ()" əmri dövrə dəyişənlərinin dövrə daxilində təcrid olunmasını təmin edir.

Bundan əlavə, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME və GTK kimi layihələrin qurulması üçün istifadə edilən Meson 0.59 qurma sisteminin buraxılışını qeyd edə bilərik. Meson kodu Python-da yazılmışdır və Apache 2.0 lisenziyası altında lisenziyalıdır. GCC, Clang, Visual Studio və digər kompilyatorlardan istifadə edərək Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS və Windows üzərində çarpaz tərtibi və qurulmasını dəstəkləyir. C, C++, Fortran, Java və Rust daxil olmaqla müxtəlif proqramlaşdırma dillərində layihələr qurmaq mümkündür. Quraşdırma zamanı make utilitinin əvəzinə Ninja alət dəsti standart olaraq istifadə olunur, lakin xcode və VisualStudio kimi digər arxa hissələrdən də istifadə edilə bilər.

Sistem, paylamalar üçün paketlər yaratmaq üçün Meson-dan istifadə etməyə imkan verən daxili çox platformalı asılılıq işləyicisinə malikdir. Assembly qaydaları sadələşdirilmiş domenə xas dildə göstərilib, istifadəçi üçün yüksək oxunaqlı və başa düşüləndir (müəlliflərin nəzərdə tutduğu kimi, tərtibatçı qaydaları yazmaq üçün minimum vaxt sərf etməlidir). Yalnız sonuncu qurmadan sonra edilən dəyişikliklərlə birbaşa əlaqəli komponentlərin yenidən qurulduğu artımlı qurma rejimi dəstəklənir. Meson təkrarlanan konstruksiyalar yaratmaq üçün istifadə oluna bilər, burada quruluşun müxtəlif mühitlərdə işlədilməsi tamamilə eyni icra olunan faylların yaranması ilə nəticələnir.

Meson 0.59-ın əsas yenilikləri:

  • Cython dili üçün əlavə dəstək (C kodu ilə inteqrasiyanı sadələşdirməyə yönəlmiş Python-un təkmil versiyası).
  • Pkgconfig-də dəyişənləri "\" simvolu ilə boşluq buraxmadan müəyyən etmək üçün "unescaped_variables" və "unescaped_uninstalled_variables" açar sözləri əlavə edildi.
  • wrc (Wine Resource Compiler) üçün əlavə dəstək.
  • Visual Studio 2012 və Visual Studio 2013 üçün layihələr yaratmaq imkanı həyata keçirilib.
  • Bütün alt layihə ilə əlaqəli əmrlər indi hər bir alt layihəni standart olaraq paralel olaraq icra edir. Paralel proseslərin sayı “--num-processes” parametri ilə müəyyən edilir.

Mənbə: opennet.ru

Добавить комментарий