Keluaran sistem binaan Meson 0.52

diterbitkan bina keluaran sistem Meson 0.52, yang digunakan untuk membina projek seperti Pelayan X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dan GTK+. Kod Meson ditulis dalam Python dan dibekalkan berlesen di bawah Apache 2.0.

Matlamat utama pembangunan Meson adalah untuk menyediakan kelajuan tinggi proses pemasangan digabungkan dengan kemudahan dan kemudahan penggunaan. Daripada utiliti buat, binaan lalai menggunakan kit alat Ninja, tetapi ia juga mungkin untuk menggunakan bahagian belakang lain, seperti xcode dan VisualStudio. Sistem ini mempunyai pengendali pergantungan berbilang platform terbina dalam yang membolehkan anda menggunakan Meson untuk membina pakej untuk pengedaran. Peraturan pemasangan ditentukan dalam bahasa khusus domain yang dipermudahkan, sangat mudah dibaca dan difahami oleh pengguna (seperti yang dimaksudkan oleh pengarang, pembangun harus menghabiskan masa minimum menulis peraturan).

Disokong kompil silang dan bina pada Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dan Windows menggunakan GCC, Clang, Visual Studio dan penyusun lain. 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 penjanaan fail boleh laku yang sama sepenuhnya.

Utama inovasi Meson 0.52:

  • Menambahkan sokongan percubaan untuk Webassembly menggunakan Emscripten sebagai pengkompil;
  • Sokongan untuk platform Illumos dan Solaris telah dipertingkatkan dengan ketara dan dibawa ke keadaan berfungsi;
  • Memastikan skrip pengantarabangsaan berasaskan gettext diabaikan jika sistem tidak memasang kit alat gettext (sebelum ini, ralat telah dipaparkan semasa menggunakan modul i18n pada sistem tanpa gettext);
  • Sokongan yang lebih baik untuk perpustakaan statik. Banyak masalah apabila menggunakan perpustakaan statik yang dinyahpasang telah diselesaikan;
  • Menambah keupayaan untuk menggunakan kamus untuk menetapkan pembolehubah persekitaran. Apabila memanggil environment(), elemen pertama kini boleh ditentukan sebagai kamus di mana pembolehubah persekitaran ditakrifkan dalam bentuk kunci/nilai. Pembolehubah ini akan dipindahkan ke environment_object seolah-olah ia ditetapkan secara individu melalui kaedah set(). Kamus juga kini boleh dihantar ke pelbagai fungsi yang menyokong hujah "env";
  • Menambahkan fungsi "runtarget alias_target(target_name, dep1, ...)" yang mencipta sasaran binaan peringkat pertama baharu yang boleh dipanggil dengan bahagian belakang binaan yang dipilih (cth. "ninja target_name"). Sasaran binaan ini tidak menjalankan sebarang arahan, tetapi memastikan semua kebergantungan dibina;
  • Mendayakan tetapan automatik pembolehubah persekitaran PKG_CONFIG_SYSROOT_DIR semasa penyusunan silang jika terdapat tetapan sys_root dalam bahagian "[properties]";
  • Menambahkan pilihan "--gdb-path" untuk menentukan laluan ke penyahpepijat GDB apabila menentukan pilihan "--gdb testname" untuk menjalankan GDB dengan skrip ujian yang ditentukan;
  • Menambahkan pengesanan automatik bagi sasaran binaan yang kemas untuk menjalankan linter ini dengan semua fail sumber. Sasaran dibuat jika clang-tidy tersedia dalam sistem dan fail ".clang-tidy" (atau "_clang-tidy") ditakrifkan dalam akar projek;
  • Kebergantungan ditambahkan('blok') untuk digunakan dalam sambungan Clang Blok;
  • Pandangan penghubung dan pengkompil dipisahkan, membenarkan gabungan pengkompil dan penghubung yang berbeza digunakan;
  • Menambah kaedah all_dependencies() pada objek SourceSet sebagai tambahan kepada kaedah all_sources();
  • Dalam run_project_tests.py, pilihan β€œ--only” telah ditambahkan untuk menjalankan ujian secara terpilih (contohnya, β€œpython run_project_tests.py β€”only fortran python3”);
  • Fungsi find_program() kini mempunyai keupayaan untuk mencari hanya versi program yang diperlukan (versi ditentukan dengan menjalankan program dengan pilihan "-version");
  • Untuk mengawal eksport simbol, pilihan vs_module_defs telah ditambahkan pada fungsi shared_module(), serupa dengan shared_library();
  • Modul kconfig telah dikembangkan untuk menyokong configure_file() untuk menentukan fail input;
  • Menambah keupayaan untuk menentukan berbilang fail input untuk pengendali "perintah:" untuk configure_file();
  • Arahan "dist" untuk mencipta arkib telah dialihkan ke kategori arahan peringkat pertama (sebelum ini arahan itu terikat dengan ninja). Menambahkan pilihan "--formats" untuk menentukan jenis arkib yang akan dibuat (contohnya,
    "meson dist -formats=xztar,zip").

Sumber: opennet.ru

Tambah komen