Meson mbangun sistem rilis 1.3

Rilis sistem mbangun Meson 1.3.0 wis diterbitake, sing digunakake kanggo mbangun proyek kayata X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME lan GTK. Kode Meson ditulis ing Python lan dilisensi ing lisensi Apache 2.0.

Sasaran pangembangan utama Meson yaiku nyedhiyakake proses perakitan kacepetan dhuwur sing digabungake kanthi gampang lan gampang digunakake. Tinimbang nggawe, mbangun nggunakake toolkit Ninja minangka standar, nanging backend liyane kayata xcode lan VisualStudio uga bisa digunakake. Sistem iki nduweni handler dependensi multi-platform sing ngidini sampeyan nggunakake Meson kanggo mbangun paket kanggo distribusi. Aturan Majelis disetel ing basa khusus domain sing disederhanakake, bisa diwaca lan bisa dingerteni pangguna (miturut gagasan penulis, pangembang kudu nglampahi minimal wektu nulis aturan).

Kompilasi silang lan mbangun ing Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS lan Windows nggunakake GCC, Clang, Visual Studio lan kompiler liyane didhukung. Sampeyan bisa mbangun proyek ing macem-macem basa program, kalebu C, C ++, Fortran, Java lan Rust. Mode mbangun tambahan didhukung, sing mung komponen sing ana hubungane langsung karo owah-owahan sing digawe wiwit mbangun pungkasan sing dibangun maneh. Meson bisa digunakake kanggo ngasilake mbangun sing bisa diulang, ing ngendi mbangun ing lingkungan sing beda bakal ngasilake eksekusi sing padha.

Inovasi utama Meson 1.3:

  • Added pilihan "werror: bener" kanggo cara mriksa compiler compiler.compiles (), compiler.links () lan compiler.run (), sing nganggep bebaya compiler minangka kasalahan (bisa digunakake kanggo mriksa sing kode dibangun tanpa bebaya. ).
  • Added has_define method kanggo mriksa definisi simbol dening preprocessor.
  • Parameter macro_name wis ditambahake menyang configure_file () fungsi, nambah pangayoman makro kanggo sambungan pindho liwat "#include" ("kalebu pengawal"), dirancang ing gaya macro ing basa C (simplifying nggawe konfigurasi file karo dinamis. jeneng makro).
  • Format output anyar wis ditambahake menyang configure_file () - JSON ("output_format: json").
  • Nambahake kemampuan kanggo nggunakake dhaptar nilai menyang parameter c_std lan cpp_std (contone, "default_options: 'c_std = gnu11, c11β€²').
  • Ing modul sing nggunakake CustomTarget kanggo ngolah file, kemampuan kanggo ngatur output pesen kanthi sarana ninja wis ditambahake.
  • The build_target "jar" wis deprecated lan "jar ()" telpon dianjurake tinimbang.
  • Parameter 'env' wis ditambahake ing generator.process () cara kanggo nyetel variabel lingkungan liwat kang generator bakal proses input.
  • Nalika nemtokake jeneng target mbangun sing digandhengake karo eksekusi, suffix kayata "eksekusi ('foo', 'main.c', name_suffix: 'bar')" diijini ngasilake eksekusi tambahan ing direktori sing padha.
  • Added "vs_module_defs" parameter kanggo eksekusi () fungsi kanggo nggunakake file def sing nemtokake dhaptar fungsi liwati shared_module ().
  • Nambahake parameter 'default_options' kanggo fungsi find_program () kanggo nyetel pilihan standar kanggo subproject fallback.
  • Added fs.relative_to () cara, kang ngasilake path relatif kanggo pitakonan pisanan, relatif kanggo kaloro, yen path pisanan ana. Contone, "fs.relative_to ('/prefix/lib', '/prefix/bin') == '../lib')".
  • Parameter following_symlinks wis ditambahake menyang install_data (), install_headers () lan install_subdir () fungsi; nalika disetel, pranala simbolis diterusake.
  • Parameter "isi" wis ditambahake menyang int.to_string () cara kanggo incrementally isi senar karo nul anjog. Contone, nelpon pesen (n.to_string (isi: 3)) kanggo n = 4 bakal ngasilake string "004".
  • Nambahake target anyar, clang-tidy-fix, sing nemtokake fungsi clang-tidy kanthi bendera "-fix".
  • Kemampuan kanggo nemtokake seselan (TARGET_SUFFIX) saka target perakitan ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) wis ditambahake menyang printah kompilasi.
  • Nambahake variabel lingkungan MESON_PACKAGE_CACHE_DIR kanggo ngatasi path menyang cache paket (subproyek / packagecache), contone, ngidini sampeyan nggunakake cache sing dienggo bareng ing sawetara proyek.
  • Ditambahake printah "meson setup --clearcache" kanggo mbusak cache sing terus-terusan.
  • Dhukungan kanggo tembung kunci "dibutuhake" wis ditambahake menyang kabeh "has_*" cara mriksa kompiler, contone, tinimbang "assert(cc.has_function('some_function'))" sampeyan saiki bisa nemtokake "cc.has_function('some_function'). , dibutuhake: bener)”.
  • Tembung kunci anyar, rust_abi, wis ditambahake menyang shared_library (), static_library (), library (), lan shared_module () fungsi, sing kudu digunakake tinimbang rust_crate_type sing ora digunakake.

Source: opennet.ru

Add a comment