Meson adalah alat perangkat lunak untuk mengotomatiskan pembangunan perangkat lunak. Ini gratis dan open source ditulis dengan Python.
Rilis versi baru dari sistem build Meson 1.4 baru-baru ini diumumkan . Versi ini hadir dengan dukungan yang lebih baik untuk fungsi-fungsi tertentu dari modul FS, serta peningkatan kompatibilitas, fitur baru, dan banyak lagi.
Bagi yang belum familiar dengan Meson, ini adalah sistem build yang digunakan oleh proyek-proyek terkemuka seperti X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, dan GTK. Tujuan utamanya adalah untuk menyediakan proses build yang cepat dan ramah pengguna. Secara default, ia menggunakan toolkit Ninja, tetapi juga kompatibel dengan backend lain seperti Xcode dan Visual Studio.
Sistem ini memiliki pengelola dependensi lintas platform terintegrasi yang menyederhanakan pembuatan paket untuk distribusi. Aturan kompilasi didefinisikan dalam bahasa khusus yang mudah dibaca, meminimalkan waktu yang dibutuhkan untuk menuliskannya.
Meson mendukung proyek pembangunan dalam berbagai bahasa seperti C, C++, Fortran, Java, dan Rust, dan menawarkan mode pembangunan tambahan yang hanya membangun kembali komponen yang terpengaruh oleh perubahan sejak pembangunan terakhir. Selain itu, Meson dapat menghasilkan build yang dapat diulang, memastikan bahwa menjalankan build di lingkungan yang berbeda akan menghasilkan executable yang benar-benar identik.
Kebaruan utama Meson 1.4
Versi baru Meson 1.4 ini menyoroti penambahan dukungan untuk modul FS, yang sekarang mendukung objek target kompilasi build_tgt dan custom_tgt, serta indeks target kompilasi (custom_idx) dalam fungsi fs.name, fs.parent, fs.replace_suffix, dan fs.stem.
Perubahan penting lainnya dalam versi baru ini adalah Meson sekarang dapat membaca versi proyek dari subproyek berbasis CMake. Ini memastikan bahwa batasan versi diverifikasi dengan benar saat mengakses subproyek CMake.
Selain itu, argumen `preserve_paths` kini telah ditambahkan ke fungsi `compile_ui`, `compile_moc`, dan preprocessing dari modul `qt4`, `qt5`, dan `qt6` untuk memilih opsi membangun struktur direktori untuk file yang sedang ditulis.
Yang juga perlu diperhatikan adalah dukungan Clang ditambahkan ke stldebug ketika debugstl diaktifkan, metode unset() diperkenalkan ke objek env, dan metode full_path() ditambahkan ke objek File untuk mendapatkan path lengkap ke file.
Dukungan untuk alat numpy-config dan pkg-config telah ditambahkan sebagai dependensi kustom baru. Ini tersedia mulai dari NumPy 2.0.0. Dukungan untuk numpy-config akan berfungsi secara otomatis setelah NumPy diinstal. Namun, file pkg-config terletak di dalam paket situs Python, yang berarti tidak dapat langsung digunakan tanpa mengkonfigurasi PKG_CONFIG_PATH.
Perubahan penting lainnya dalam versi baru ini meliputi:
- Kemampuan untuk mengontrol pemeriksaan pernyataan (GLIBCXX_ASSERTIONS) di C++ stdlib melalui konfigurasi ndebug.
- Menambahkan argumen kata kunci melestarikan_pathsun ke fungsi modul qt
- Sekarang dimungkinkan untuk menentukan target dependen dengan depend: untuk compiler.preprocess(). Target ini harus dibuat sebelum pra-pemrosesan dimulai.
- Generator pengikatan bindgen sekarang mendukung heuristik Meson untuk menentukan file header C++.
- Menambahkan kemampuan untuk mengganti pengaturan bahasa untuk bindgen.
- Pengujian sekarang gagal secara default setelah mengalami kesalahan saat menjalankan pembersih seperti MemorySanitizer.
- Menambahkan dukungan untuk kompiler Texas Instruments C/C++ untuk keluarga CPU C6000.
Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut, Anda dapat menemukan detailnya di tautan berikut.
Bagaimana cara menginstal Meson di Linux?
Bagi mereka yang tertarik untuk dapat menginstal sistem build ini di sistem mereka, mereka dapat melakukannya dengan mengikuti petunjuk yang kami bagikan di bawah ini.
Mereka harus tahu bahwa Meson tersedia di PyPi, sehingga dapat diinstal dengan perintah:
pip3 install meson
Sebagai catatan, Anda harus tahu bahwa perintah yang tepat untuk mengetik untuk menginstal pip dapat bervariasi antar sistem, jadi Anda disarankan untuk menggunakan pip versi Python 3.