Keluaran sistem binaan Meson 1.1

Keluaran sistem binaan Meson 1.1.0 telah diterbitkan, yang digunakan untuk membina projek seperti Pelayan X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dan GTK. Kod Meson ditulis dalam Python dan dilesenkan di bawah lesen Apache 2.0.

Matlamat pembangunan utama Meson adalah untuk menyediakan proses pemasangan berkelajuan tinggi yang digabungkan dengan kemudahan dan kemudahan penggunaan. Daripada membuat, binaan menggunakan kit alat Ninja secara lalai, tetapi bahagian belakang lain seperti xcode dan VisualStudio juga boleh digunakan. Sistem ini mempunyai pengendali pergantungan berbilang platform terbina dalam yang membolehkan anda menggunakan Meson untuk membina pakej untuk pengedaran. Peraturan pemasangan ditetapkan dalam bahasa khusus domain yang dipermudahkan, ia boleh dibaca dengan baik dan difahami oleh pengguna (mengikut idea pengarang, pembangun harus menghabiskan masa minimum menulis peraturan).

Menyusun silang dan membina pada Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dan Windows menggunakan GCC, Clang, Visual Studio dan penyusun lain disokong. Ia adalah mungkin untuk membina projek dalam pelbagai bahasa pengaturcaraan, termasuk C, C++, Fortran, Java dan Rust. Mod binaan tambahan disokong, di mana hanya komponen yang berkaitan secara langsung dengan perubahan yang dibuat sejak binaan terakhir dibina semula. Meson boleh digunakan untuk menjana binaan berulang, yang menjalankan binaan dalam persekitaran yang berbeza menghasilkan boleh laku yang sama sepenuhnya.

Inovasi utama Meson 1.1:

  • Argumen "objek:" baharu telah ditambahkan pada declare_dependency() untuk melampirkan objek secara langsung kepada boleh laku sebagai kebergantungan dalaman yang tidak memerlukan link_who.
  • Perintah "meson devenv --dump" mempunyai keupayaan pilihan untuk menentukan fail untuk menulis pembolehubah persekitaran, dan bukannya mengeluarkan kepada aliran keluaran standard.
  • Menambahkan kaedah FeatureOption.enable_if dan FeatureOption.disable_if untuk memudahkan anda membuat syarat sebagai persediaan untuk menghantar parameter kepada fungsi dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Tidak boleh mendayakan ciri apabila foo tidak turut didayakan') dep = dependency('foo', diperlukan : opt)
  • Ia dibenarkan untuk menghantar objek yang dijana antara argumen "objek:".
  • Fungsi projek menyokong pemasangan fail dengan maklumat tentang lesen projek.
  • Melaksanakan "sudo meson install" memastikan tetapan semula keistimewaan semasa membina semula untuk platform sasaran.
  • Perintah "meson install" menyediakan keupayaan untuk menentukan pengendali yang berasingan untuk mendapatkan kebenaran root (contohnya, anda boleh memilih polkit, sudo, opendoas atau $MESON_ROOT_CMD). Menjalankan "meson install" dalam mod bukan interaktif tidak lagi cuba untuk meningkatkan keistimewaan.
  • Menambahkan sokongan untuk membaca pilihan daripada fail meson.options dan bukannya meson_options.txt.
  • Menyediakan pengalihan kepada stderr output maklumat tentang kemajuan introspeksi.
  • Bahagian belakang "tiada" baharu (--backend=none) telah ditambahkan untuk mencipta projek yang hanya mempunyai peraturan pemasangan dan tiada peraturan binaan.
  • Kebergantungan baru pybind11 telah ditambahkan untuk menjadikan dependency('pybind11') berfungsi dengan pkg-config dan cmake tanpa menggunakan skrip pybind11-config.
  • Pilihan "--reconfigure" dan "--wipe" (meson setup --reconfigure builddir and meson setup --wipe builddir ) dibenarkan dengan builddir kosong.
  • meson.add_install_script() menambah sokongan untuk kata kunci dry_run, yang membolehkan anda menjalankan skrip pemasangan anda sendiri apabila memanggil "meson install --dry-run".

Sumber: opennet.ru

Tambah komen