CMake 3.21 ve Meson 0.59 derleme sistemlerinin piyasaya sürülmesi

Autotools'a alternatif olarak çalışan ve KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ve Blender gibi projelerde kullanılan platformlar arası açık derleme komut dosyası oluşturucusu CMake 3.21'ün sürümü sunuldu. CMake kodu C++ ile yazılmıştır ve BSD lisansı altında dağıtılmaktadır.

CMake, basit bir kodlama dili, modüller aracılığıyla işlevselliği genişletmenin bir yolu, minimum sayıda bağımlılık (M4, Perl veya Python'a bağlanma yok), önbellek desteği, çapraz derleme araçlarının varlığı, yapı oluşturma desteği sağlamasıyla dikkat çekiyor. çok çeşitli derleme sistemleri ve derleyiciler için dosyalar, test komut dosyalarını ve derleme paketlerini tanımlamak için varlık ctest ve cpack yardımcı programları, derleme parametrelerini etkileşimli olarak ayarlamak için cmake-gui yardımcı programı.

Ana iyileştirmeler:

  • CUDA uygulamalarını taşınabilir C++ koduna dönüştürmeyi kolaylaştırmayı amaçlayan C++ dilinin bir lehçesi olan Taşınabilirlik için Heterojen Bilgi İşlem Arayüzü (HIP) programlama dili için tam destek eklendi.
  • Visual Studio 17 Preview 2022'i temel alan Visual Studio 2022 1.1 için derleme komut dosyası oluşturucu eklendi.
  • Makefile ve Ninja derleme komut dosyası oluşturucuları, statik analizörler gibi bağlayıcıyı başlatan yardımcı yardımcı programları başlatmak için kullanılabilen C_LINKER_LAUNCHER ve CXX_LINKER_LAUNCHER özelliklerini ekledi. Jeneratör belirtilen yardımcı programları çalıştıracak ve onlara bağlayıcının adını ve argümanlarını iletecektir.
  • “C_STANDARD” ve “OBJC_STANDARD” özelliklerinin yanı sıra derleyici parametrelerini ayarlama araçlarına (Derleme Özellikleri) C17 ve C23 spesifikasyonları için destek eklenmiştir.
  • Cmake yardımcı programına “—toolchain” seçeneği eklendi > araç setine giden yolu belirlemek için.
  • Terminalde görüntülenen mesaj türleri vurgulanır.
  • Fujitsu derleyicisi için destek eklendi.
  • "foreach()" komutu, döngü değişkenlerinin bir döngü içerisinde izole edilmesini sağlar.

Ek olarak, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ve GTK gibi projelerin oluşturulmasında kullanılan Meson 0.59 derleme sisteminin piyasaya sürüldüğünü de not edebiliriz. Meson'un kodu Python'da yazılmıştır ve Apache 2.0 lisansı altında lisanslanmıştır. GCC, Clang, Visual Studio ve diğer derleyicileri kullanarak Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ve Windows üzerinde çapraz derlemeyi ve derlemeyi destekler. C, C++, Fortran, Java ve Rust dahil olmak üzere çeşitli programlama dillerinde projeler oluşturmak mümkündür. Oluşturma sırasında make yardımcı programı yerine Ninja araç seti varsayılan olarak kullanılır, ancak xcode ve VisualStudio gibi diğer arka uçlar da kullanılabilir.

Sistem, dağıtımlara yönelik paketler oluşturmak için Meson'u kullanmanıza olanak tanıyan yerleşik bir çoklu platform bağımlılık işleyicisine sahiptir. Derleme kuralları basitleştirilmiş, alana özgü bir dilde belirtilir, kullanıcı için oldukça okunaklı ve anlaşılırdır (yazarların amaçladığı gibi, geliştiricinin kuralları yazmak için minimum zaman harcaması gerekir). Yalnızca son yapıdan bu yana yapılan değişikliklerle doğrudan ilgili bileşenlerin yeniden oluşturulduğu artımlı yapı modu desteklenir. Meson, yapının farklı ortamlarda çalıştırılmasının tamamen aynı yürütülebilir dosyaların oluşturulmasıyla sonuçlandığı tekrarlanabilir yapılar oluşturmak için kullanılabilir.

Meson 0.59'in ana yenilikleri:

  • Cython dili için destek eklendi (Python'un C koduyla entegrasyonu basitleştirmeyi amaçlayan gelişmiş bir sürümü).
  • "\" karakteriyle boşluklardan kaçmadan pkgconfig'teki değişkenleri tanımlamak için "unescaped_variables" ve "unescaped_uninstalled_variables" anahtar sözcükleri eklendi.
  • Wrc (Şarap Kaynak Derleyicisi) desteği eklendi.
  • Visual Studio 2012 ve Visual Studio 2013 için proje oluşturma yeteneği uygulandı.
  • Alt projeyle ilgili tüm komutlar artık her alt projeyi varsayılan olarak paralel olarak çalıştırıyor. Paralel süreçlerin sayısı “--num-processes” parametresi ile belirlenir.

Kaynak: opennet.ru

Yorum ekle