Tujuan utama pengembangan Meson adalah untuk memberikan proses perakitan berkecepatan tinggi yang dikombinasikan dengan kenyamanan dan kemudahan penggunaan. Alih-alih utilitas make, build default menggunakan toolkit
Kompilasi silang dan pembuatan di Linux, macOS, dan Windows menggunakan GCC, Clang, 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 yang dapat diulang, di mana menjalankan build di lingkungan yang berbeda akan menghasilkan pembuatan file executable yang benar-benar identik.
Utama
- Menambahkan dukungan untuk pembangunan transparan proyek yang sudah ada yang menggunakan skrip pembangunan CMake. Meson sekarang dapat langsung membangun subproyek sederhana (seperti perpustakaan tunggal) menggunakan modul CMake, mirip dengan subproyek standar (termasuk subproyek CMake dapat ditempatkan di direktori subproyek);
- Untuk semua kompiler yang digunakan, pengujian pendahuluan disertakan melalui perakitan dan eksekusi file pengujian sederhana (pemeriksaan kewarasan), tidak terbatas pada pengujian tanda yang ditentukan pengguna untuk kompiler silang (mulai sekarang, kompiler asli platform saat ini juga diperiksa) .
- Menambahkan kemampuan untuk menentukan opsi baris perintah yang digunakan selama kompilasi silang, dengan pengikatan dengan menentukan awalan platform sebelum opsi. Sebelumnya, opsi baris perintah hanya mencakup build asli dan tidak dapat ditentukan untuk kompilasi silang. Opsi baris perintah sekarang berlaku terlepas dari apakah Anda membuat kompilasi asli atau silang, memastikan bahwa build asli dan lintas menghasilkan hasil yang sama;
- Menambahkan kemampuan untuk menentukan tanda β--cross-fileβ lebih dari satu kali pada baris perintah untuk membuat daftar beberapa file silang;
- Menambahkan dukungan untuk kompiler ICL (Intel C/C++ Compiler) untuk platform Windows (ICL.EXE dan ifort);
- Menambahkan dukungan toolkit awal untuk CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
- Metode βget_variableβ telah ditambahkan ke objek βdependencyβ, yang memungkinkan Anda mendapatkan nilai variabel tanpa memperhitungkan jenis ketergantungan saat ini (misalnya, dep.get_variable(pkg-config : 'var- nama', buat : 'COP_VAR_NAME));
- Menambahkan argumen opsi perakitan target baru, "link_bahasa", untuk secara eksplisit menentukan bahasa yang digunakan saat memanggil linker. Misalnya, program utama Fortran dapat memanggil kode C/C++, yang secara otomatis akan memilih C/C++ ketika linker Fortran harus digunakan;
- Penanganan flag praprosesor CPPFLAGS telah diubah. Jika Meson sebelumnya menyimpan CPPFLAGS dan flag kompilasi khusus bahasa (CFLAGS, CXXFLAGS) secara terpisah, kini diproses secara tidak terpisahkan dan flag yang tercantum dalam CPPFLAGS digunakan sebagai sumber flag kompilasi lain untuk bahasa yang mendukungnya;
- Output dari custom_target dan custom_target[i] sekarang dapat digunakan sebagai argumen dalam operasi link_with dan link_whole;
- Generator sekarang memiliki kemampuan untuk menentukan dependensi tambahan menggunakan opsi βdependsβ (misalnya, generator(program_runner, output: ['@[email dilindungi]'], tergantung: exe));
- Menambahkan opsi statis ke find_library untuk memungkinkan pencarian hanya menyertakan perpustakaan yang tertaut secara statis;
- Untuk python.find_installation, kemampuan untuk menentukan keberadaan modul Python tertentu untuk versi Python tertentu telah ditambahkan;
- Menambahkan modul baru stable-kconfig untuk mem-parsing file kconfig;
- Menambahkan perintah baru βsubproyek foreachβ, yang mengambil perintah dengan argumen dan menjalankannya di semua direktori subproyek;
Sumber: opennet.ru