Meson derleme sistemi sürümü 0.51

yayınlanan sistem sürümü oluşturma Mezon 0.51X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ve GTK+ gibi projeler oluşturmak için kullanılır. Meson kodu Python'da yazılmıştır ve sağlanan Apache 2.0 altında lisanslanmıştır.

Meson'un geliştirilmesinin temel amacı, montaj sürecinde yüksek hız ile birlikte rahatlık ve kullanım kolaylığı sağlamaktır. Make yardımcı programı yerine, varsayılan yapı araç setini kullanır Ninjaancak xcode ve VisualStudio gibi diğer arka uçları kullanmak da mümkündür. 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).

GCC, Clang, Visual Studio ve diğer derleyicileri kullanarak Linux, macOS ve Windows üzerinde çapraz derleme ve geliştirme desteklenir. C, C++, Fortran, Java ve Rust dahil olmak üzere çeşitli programlama dillerinde projeler oluşturmak mümkündür. 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.

Ana yenilikler Mezon 0.51:

  • CMake derleme komut dosyalarını kullanan mevcut projelerin şeffaf oluşturulmasına yönelik destek eklendi. Meson artık standart alt projelere benzer şekilde CMake modülünü kullanarak doğrudan basit alt projeler (tek kitaplıklar gibi) oluşturabilir (CMake alt projeleri dahil, alt projeler dizinine yerleştirilebilir);
  • Kullanılan tüm derleyiciler için, çapraz derleyiciler için kullanıcı tarafından belirlenen işaretlerin test edilmesiyle sınırlı olmayan, basit test dosyalarının derlenmesi ve yürütülmesi (sağlık kontrolü) aracılığıyla ön testler dahildir (bundan sonra mevcut platforma özgü derleyiciler de kontrol edilecektir) .
  • Çapraz derleme sırasında kullanılan komut satırı seçeneklerini, seçenekten önce bir platform öneki belirterek bağlamayla tanımlama yeteneği eklendi. Daha önce komut satırı seçenekleri yalnızca yerel yapıları kapsıyordu ve çapraz derleme için belirlenemiyordu. Komut satırı seçenekleri artık yerel olarak mı yoksa çapraz derleme mi yaptığınızdan bağımsız olarak geçerli olup yerel ve çapraz derlemelerin aynı sonuçları üretmesini sağlar;
  • Birden fazla çapraz dosyayı listelemek için komut satırına "--cross-file" bayrağını birden fazla kez belirtme yeteneği eklendi;
  • Windows platformu (ICL.EXE ve ifort) için ICL derleyicisi (Intel C/C++ Derleyicisi) desteği eklendi;
  • CPU Xtensa (xt-xcc, xt-xc++, xt-nm) için başlangıç ​​araç seti desteği eklendi;
  • “Bağımlılık” nesnesine, mevcut bağımlılığın türünü dikkate almadan bir değişkenin değerini almanıza olanak tanıyan “get_variable” yöntemi eklenmiştir (örneğin, dep.get_variable(pkg-config : 'var-) name', cmake : 'COP_VAR_NAME));
  • Bağlayıcıyı çağırırken kullanılan dili açıkça belirtmek için yeni bir hedef derleme seçenekleri bağımsız değişkeni olan "link_language" eklendi. Örneğin, bir ana Fortran programı, Fortran bağlayıcının kullanılması gerektiğinde otomatik olarak C/C++'yı seçecek olan C/C++ kodunu çağırabilir;
  • CPPFLAGS ön işlemci bayraklarının işlenmesi değiştirildi. Meson daha önce CPPFLAGS'ı ve dile özgü derleme bayraklarını (CFLAGS, CXXFLAGS) ayrı ayrı depolarken, artık bunlar birbirinden ayrılamaz şekilde işleniyor ve CPPFLAGS'de listelenen bayraklar, onları destekleyen diller için başka bir derleme bayrağı kaynağı olarak kullanılıyor;
  • Custom_target vecustom_target[i] çıktıları artık link_with ve link_whole işlemlerinde argüman olarak kullanılabilir;
  • Jeneratörler artık "bağımlıdır" seçeneğini kullanarak ek bağımlılıklar belirleme yeteneğine sahiptir (örneğin, jeneratör(program_runner, çıktı: ['@)[e-posta korumalı]'], bağlıdır: exe));
  • Aramanın yalnızca statik olarak bağlantılı kitaplıkları içermesine izin vermek için find_library'ye statik bir seçenek eklendi;
  • Python.find_installation'a, belirli bir Python sürümü için belirli bir Python modülünün varlığını belirleme yeteneği eklenmiştir;
  • Kconfig dosyalarını ayrıştırmak için yeni modül kararsız-kconfig eklendi;
  • Argümanlarla bir komut alan ve onu tüm alt proje dizinlerinde çalıştıran yeni bir "subprojects foreach" komutu eklendi;

Kaynak: opennet.ru

Yorum ekle