Rilis sistem perakitan Meson 0.58. Proyek untuk membuat implementasi Meson dalam bahasa C

Rilis sistem build Meson 0.58 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 0.58:

  • Meson memiliki operasi pemformatan string bawaan. Daripada memanggil metode format, Anda sekarang dapat mengganti nilai secara langsung, misalnya, alih-alih β€œ'A string @0@ yang akan diformat @1@'.format(n, m)” Anda dapat langsung menentukan β€œf' Sebuah string @n@ yang akan diformat @ m@'".
  • Metode "ganti" telah ditambahkan ke objek string untuk melakukan operasi penggantian satu substring dengan substring lainnya, misalnya, "s = s.replace('aaa', 'bbb')".
  • Menambahkan fungsi "range(start, stop[, step])" untuk mengembalikan objek yang dapat digunakan dalam loop foreach, seperti "foreach i : range(15)".
  • Metode meson.add_devenv() telah diterapkan, memungkinkan Anda menambahkan objek environment() untuk menyetel variabel lingkungan saat menggunakan perintah "meson devenv", misalnya, untuk menyetel variabel lingkungan dengan jalur ke direktori plugin.
  • Untuk lingkungan pengembangan, perintah baru telah diusulkan: β€œmeson devenv -C builddir [<command>], yang memungkinkan untuk menjalankan perintah di lingkungan yang dikonfigurasi untuk meluncurkan proyek dari direktori build (tanpa instalasi).
  • Secara default, opsi "-pipe" dihentikan ketika menjalankan semua kompiler yang didukung.
  • Memanggil meson.add_dist_script() dari subproyek diperbolehkan.
  • Memberikan kemampuan untuk menjalankan metode append() dan prepend() beberapa kali pada objek environment() yang sama.
  • Fungsi error() memperbolehkan lebih dari satu argumen, dipisahkan oleh spasi (mirip dengan peringatan() dan pesan()).
  • Menambahkan opsi "--skip-subprojects" untuk melewati instalasi subproyek secara selektif.

Secara terpisah, kita dapat mencatat proyek Boson, yang bertujuan untuk menciptakan implementasi bahasa skrip perakitan Meson yang portabel dan sederhana, yang ditulis dalam C, bukan Python. Proyek ini masih dalam tahap awal pengembangan dan belum siap untuk menyelesaikan proyek kerja secara penuh. Kode ini dilisensikan di bawah GPLv3 (Python Meson asli dilisensikan di bawah lisensi Apache 2.0).

Sumber: opennet.ru

Tambah komentar