Meson ngawangun sistem release 1.3

Pelepasan sistem ngawangun Meson 1.3.0 parantos diterbitkeun, anu dianggo pikeun ngawangun proyék sapertos X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME sareng GTK. Kodeu Meson ditulis dina Python sareng dilisensikeun dina lisénsi Apache 2.0.

Tujuan pangwangunan konci Meson nyaéta pikeun nyayogikeun prosés assembly speed tinggi digabungkeun jeung genah tur betah pamakéan. Gantina nyieun, ngawangun ngagunakeun Ninja toolkit sacara standar, tapi backends lianna kayaning xcode na VisualStudio ogé bisa dipaké. Sistim nu boga multi-platform handler kagumantungan diwangun-di nu ngidinan Anjeun pikeun make Meson ngawangun bungkusan keur sebaran. Aturan Majelis diatur dina basa domain-spésifik disederhanakeun, aranjeunna ogé bisa dibaca tur kaharti ku pamaké (nurutkeun pamanggih pangarang ', pamekar kudu méakkeun minimum aturan nulis waktu).

Kompilasi silang sareng ngawangun dina Linux, Illumos / Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS sareng Windows nganggo GCC, Clang, Visual Studio sareng kompiler sanésna dirojong. Kasebut nyaéta dimungkinkeun pikeun ngawangun proyék dina sagala rupa basa programming, kaasup C, C ++, Fortran, Java jeung Rust. Modeu ngawangun incremental dirojong, dimana ngan ukur komponén anu aya hubunganana langsung sareng parobihan anu dilakukeun ti saprak ngawangun terakhir anu diwangun deui. Meson tiasa dianggo pikeun ngahasilkeun gedong anu tiasa diulang, dimana ngajalankeun gedong dina lingkungan anu béda-béda nyababkeun executable anu idéntik.

Inovasi utama Meson 1.3:

  • Ditambahkeun pilihan "Werror: leres" pikeun padika dipariksa kompiler compiler.compiles (), compiler.links () sarta compiler.run (), nu Ngaruwat warnings compiler sakumaha kasalahan (bisa dipaké pikeun pariksa yen kode nu diwangun tanpa warnings. ).
  • Ditambahkeun metode has_define pikeun mariksa definisi simbol ku preprocessor.
  • Parameter macro_name geus ditambahkeun kana configure_file () fungsi, nambahkeun panyalindungan makro pikeun sambungan ganda ngaliwatan "#include" ("kaasup penjaga"), dirancang dina gaya macros dina basa C (simplifying kreasi ngonpigurasikeun file kalawan dinamis. ngaran makro).
  • A format kaluaran anyar geus ditambahkeun kana configure_file () - JSON ("output_format: json").
  • Nambahkeun kamampuan ngagunakeun daptar nilai kana parameter c_std sareng cpp_std (contona, "default_options: 'c_std = gnu11, c11′').
  • Dina modul anu nganggo CustomTarget pikeun ngolah file, kamampuan pikeun ngaropea kaluaran pesen ku utilitas ninja parantos ditambahkeun.
  • The build_target "jar" geus deprecated jeung "jar ()" panggero dianjurkeun gantina.
  • Parameter 'env' geus ditambahkeun kana generator.process () métode pikeun set variabel lingkungan ngaliwatan nu generator bakal ngolah input.
  • Nalika nangtukeun ngaran target ngawangun pakait sareng executables, suffixes kayaning "executable ('foo', 'main.c', name_suffix: 'bar')" diwenangkeun pikeun ngahasilkeun executables tambahan dina diréktori sarua.
  • Ditambahkeun parameter "vs_module_defs" kana exectuable () fungsi pikeun make file def nu ngahartikeun daptar fungsi diliwatan mun shared_module ().
  • Ditambahkeun parameter 'default_options' pikeun fungsi find_program () pikeun nyetél pilihan standar pikeun subproject fallback.
  • Ditambahkeun fs.relative_to () métode, nu mulih jalur relatif pikeun argumen kahiji, relatif ka kadua, lamun jalur kahiji aya. Contona, "fs.relative_to ('/prefix/lib', '/prefix/bin') == '../lib')".
  • Parameter following_symlinks geus ditambahkeun kana install_data (), install_headers () jeung install_subdir () fungsi; lamun disetel, Tumbu simbolis dituturkeun.
  • A "eusian" parameter geus ditambahkeun kana int.to_string () métode pikeun incrementally eusian string kalawan nol ngarah. Contona, nelepon pesen (n.to_string (eusian: 3)) pikeun n = 4 bakal ngahasilkeun string "004".
  • Nambahkeun target anyar, clang-tidy-fix, anu netepkeun ngajalankeun utilitas clang-tidy kalayan bendera "-fix".
  • Kamampuhan pikeun nangtukeun ahiran (TARGET_SUFFIX) tina udagan rakitan ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) geus ditambahkeun kana paréntah kompilasi.
  • Ditambahkeun variabel lingkungan MESON_PACKAGE_CACHE_DIR pikeun override jalur ka cache pakét (subprojects / packagecache), contona, ngamungkinkeun anjeun ngagunakeun cache dibagikeun dina sababaraha proyék.
  • Ditambahkeun paréntah "meson setup --clearcache" pikeun mupus cache pengkuh.
  • Rojongan pikeun kecap konci "diperlukeun" geus ditambahkeun kana sakabéh "has_*" métode cék kompiler, contona, tinimbang "negeskeun (cc.has_function ('some_function'))" anjeun ayeuna bisa nangtukeun "cc.has_function ('some_function'). , diperlukeun: leres)”.
  • A keyword anyar, rust_abi, geus ditambahkeun kana shared_library (), static_library (), perpustakaan (), sarta shared_module () fungsi, nu kudu dipake tinimbang deprecated rust_crate_type.

sumber: opennet.ru

Tambahkeun komentar