Keluaran sistem binaan Meson 0.51

diterbitkan bina keluaran sistem Meson 0.51, 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).

Penyusun silang dan membina pada Linux, 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 penjanaan fail boleh laku yang sama sepenuhnya.

Utama inovasi Meson 0.51:

  • Menambah sokongan untuk pembinaan telus projek sedia ada yang menggunakan skrip binaan CMake. Meson kini boleh terus membina subprojek mudah (seperti perpustakaan tunggal) menggunakan modul CMake, serupa dengan subprojek standard (termasuk subprojek CMake boleh diletakkan dalam direktori subprojek);
  • Untuk semua penyusun terpakai, ujian awal disertakan melalui pemasangan dan pelaksanaan fail ujian mudah (semakan kewarasan), tidak terhad kepada menguji bendera yang ditentukan pengguna untuk penyusun silang (mulai sekarang, penyusun asli kepada platform semasa juga disemak) .
  • Menambah keupayaan untuk menentukan pilihan baris arahan yang digunakan semasa penyusunan silang, dengan mengikat dengan menentukan awalan platform sebelum pilihan. Sebelum ini, pilihan baris arahan hanya meliputi binaan asli dan tidak boleh ditentukan untuk kompilasi silang. Pilihan baris perintah kini terpakai tidak kira sama ada anda membina secara asli atau menyusun silang, memastikan binaan asli dan silang menghasilkan hasil yang sama;
  • Menambah keupayaan untuk menentukan bendera "--cross-file" lebih daripada sekali pada baris arahan untuk menyenaraikan berbilang fail silang;
  • Menambah sokongan untuk pengkompil ICL (Intel C/C++ Compiler) untuk platform Windows (ICL.EXE dan ifort);
  • Menambahkan sokongan kit alat awal untuk CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Kaedah β€œget_variable” telah ditambahkan pada objek β€œdependency”, yang membolehkan anda mendapatkan nilai pembolehubah tanpa mengambil kira jenis kebergantungan semasa (contohnya, dep.get_variable(pkg-config : 'var- nama', cmake : 'COP_VAR_NAME));
  • Menambahkan hujah pilihan perhimpunan sasaran baharu, "link_language", untuk menyatakan secara eksplisit bahasa yang digunakan semasa memanggil pemaut. Sebagai contoh, program Fortran utama boleh memanggil kod C/C++, yang akan memilih C/C++ secara automatik apabila pemaut Fortran harus digunakan;
  • Pengendalian bendera prapemproses CPPFLAGS telah diubah. Walaupun Meson sebelum ini menyimpan CPPFLAGS dan bendera kompilasi khusus bahasa (CFLAGS, CXXFLAGS) secara berasingan, ia kini diproses secara tidak dapat dipisahkan dan bendera yang disenaraikan dalam CPPFLAGS digunakan sebagai satu lagi sumber bendera kompilasi untuk bahasa yang menyokongnya;
  • Output custom_target dan custom_target[i] kini boleh digunakan sebagai argumen dalam operasi link_with dan link_whole;
  • Penjana kini mempunyai keupayaan untuk menentukan kebergantungan tambahan menggunakan pilihan "bergantung" (contohnya, penjana(program_runner, output: ['@[e-mel dilindungi]'], bergantung: exe));
  • Menambah pilihan statik untuk find_library untuk membenarkan carian memasukkan hanya perpustakaan yang dipautkan secara statik;
  • Untuk python.find_installation, keupayaan untuk menentukan kehadiran modul Python yang diberikan untuk versi Python tertentu telah ditambah;
  • Menambah modul baru unstable-kconfig untuk menghuraikan fail kconfig;
  • Menambah arahan baharu "subprojek foreach", yang mengambil arahan dengan hujah dan menjalankannya dalam semua direktori subprojek;

Sumber: opennet.ru

Tambah komen