Meson membangun rilis sistem 1.1

Rilis sistem build Meson 1.1.0 telah dipublikasikan, yang digunakan untuk membangun proyek seperti X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dan GTK. Kode Meson ditulis dengan Python dan dilisensikan di bawah lisensi Apache 2.0.

Tujuan utama pengembangan Meson adalah menyediakan proses perakitan berkecepatan tinggi yang dipadukan dengan kenyamanan dan kemudahan penggunaan. Alih-alih membuat, build menggunakan toolkit Ninja secara default, tetapi backend lain seperti xcode dan VisualStudio juga dapat digunakan. Sistem ini memiliki penangan ketergantungan multi-platform bawaan yang memungkinkan Anda menggunakan Meson untuk membangun paket untuk distribusi. Aturan perakitan diatur dalam bahasa khusus domain yang disederhanakan, dapat dibaca dengan baik dan dimengerti oleh pengguna (menurut ide penulis, pengembang harus menghabiskan waktu minimum untuk menulis aturan).

Kompilasi silang dan pembangunan di Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dan Windows menggunakan GCC, Dentang, Visual Studio dan kompiler lainnya didukung. Dimungkinkan untuk membangun proyek dalam berbagai bahasa pemrograman, termasuk C, C++, Fortran, Java, dan Rust. Mode build inkremental didukung, di mana hanya komponen yang terkait langsung dengan perubahan yang dibuat sejak build terakhir yang dibuat ulang. Meson dapat digunakan untuk menghasilkan build berulang, di mana menjalankan build di lingkungan yang berbeda menghasilkan executable yang sepenuhnya identik.

Inovasi utama Meson 1.1:

  • Argumen "objek:" baru telah ditambahkan ke declare_dependency() untuk melampirkan objek secara langsung ke executable sebagai dependensi internal yang tidak memerlukan link_who.
  • Perintah "meson devenv --dump" memiliki kemampuan opsional untuk menentukan file untuk menulis variabel lingkungan, alih-alih mengeluarkan ke aliran keluaran standar.
  • Menambahkan metode FeatureOption.enable_if dan FeatureOption.disable_if untuk mempermudah pembuatan kondisional sebagai persiapan untuk meneruskan parameter ke fungsi dependency() . opt = get_option('feature').disable_if(not foo, error_message : 'Tidak dapat mengaktifkan fitur ketika foo tidak juga diaktifkan') dep = dependensi('foo', wajib : opt)
  • Itu diperbolehkan untuk melewati objek yang dihasilkan di antara argumen "objek:".
  • Fungsi proyek mendukung penginstalan file dengan informasi tentang lisensi proyek.
  • Menjalankan "sudo meson install" memastikan pengaturan ulang hak istimewa selama pembangunan kembali untuk platform target.
  • Perintah "meson install" menyediakan kemampuan untuk menentukan penangan terpisah untuk mendapatkan izin root (misalnya, Anda dapat memilih polkit, sudo, opendoas, atau $MESON_ROOT_CMD). Menjalankan "meson install" dalam mode non-interaktif tidak lagi berupaya meningkatkan hak istimewa.
  • Menambahkan dukungan untuk membaca opsi dari file meson.options alih-alih meson_options.txt.
  • Memberikan pengalihan ke stderr dari keluaran informasi tentang kemajuan introspeksi.
  • Backend "none" baru (--backend=none) telah ditambahkan untuk membuat project yang hanya memiliki aturan instal dan tanpa aturan build.
  • Dependensi pybind11 baru telah ditambahkan untuk membuat dependensi('pybind11') berfungsi dengan pkg-config dan cmake tanpa menggunakan skrip pybind11-config.
  • Opsi "--reconfigure" dan "--wipe" (meson setup --reconfigure builddir dan meson setup --wipe builddir ) diizinkan dengan builddir kosong.
  • meson.add_install_script() menambahkan dukungan untuk kata kunci dry_run, yang memungkinkan Anda menjalankan skrip instalasi sendiri saat memanggil "meson install --dry-run".

Sumber: opennet.ru

Tambah komentar