Meson membangun rilis sistem 1.0

Rilis sistem build Meson 1.0.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.0:

  • Modul untuk membangun proyek dalam bahasa Rust telah dinyatakan stabil. Modul ini digunakan dalam proyek Mesa untuk membangun komponen yang ditulis dalam Rust.
  • Opsi awalan, yang didukung di sebagian besar fungsi pemeriksaan kompiler, menyediakan kemampuan untuk menangani array selain string. Misalnya, Anda kini dapat menentukan: cc.check_header('GL/wglew.h', prefix : ['#include ', '#termasuk '])
  • Menambahkan argumen baru "--workdir" untuk memungkinkan penggantian direktori kerja. Misalnya, untuk menggunakan direktori saat ini dan bukan direktori kerja, Anda dapat menjalankan: meson devenv -C builddir --workdir .
  • Operator baru β€œin” dan β€œnot in” telah diusulkan untuk menentukan kemunculan substring dalam sebuah string, mirip dengan pemeriksaan yang tersedia sebelumnya untuk kemunculan elemen dalam array atau kamus. Misalnya: fs = import('fs') if 'sesuatu' di fs.read('somefile') # True endif
  • Menambahkan opsi "tingkat peringatan=semuanya", yang mengaktifkan output dari semua peringatan kompiler yang tersedia (di clang dan MSVC menggunakan -Weverything dan /Wall, dan di GCC peringatan disertakan secara terpisah, kira-kira sesuai dengan -Weverything mode dalam dentang).
  • Metode karat.bindgen mengimplementasikan kemampuan untuk menangani argumen "dependensi" untuk meneruskan jalur ke dependensi yang harus diproses oleh kompiler.
  • Fungsi java.generate_native_headers sudah tidak digunakan lagi dan diganti namanya menjadi java.native_headers agar sesuai dengan gaya penamaan fungsi umum Meson.

Sumber: opennet.ru

Tambah komentar