Meson ngawangun sistem release 0.51

diterbitkeun ngawangun release sistem Méson 0.51, anu dianggo pikeun ngawangun proyék sapertos X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME sareng GTK+. Kode Meson ditulis dina Python jeung dibekelan dilisensikeun dina Apache 2.0.

Tujuan konci ngembangkeun Meson nyaéta pikeun nyadiakeun speed tinggi prosés assembly digabungkeun jeung genah tur betah pamakéan. Gantina make utiliti, wangunan standar ngagunakeun toolkit ninja, Tapi éta ogé mungkin migunakeun backends séjén, kayaning xcode na VisualStudio. Sistim nu boga multi-platform handler kagumantungan diwangun-di nu ngidinan Anjeun pikeun make Meson ngawangun bungkusan keur sebaran. Aturan Majelis dieusian dina basa domain-spésifik disederhanakeun, anu kacida dibaca tur kaharti ku pamaké (sakumaha dimaksud ku pangarang, pamekar kudu méakkeun minimum aturan nulis waktu).

Kompilasi silang sareng ngawangun dina Linux, 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 wangunan terakhir diwangun deui. Meson tiasa dianggo pikeun ngahasilkeun gedong anu tiasa diulang, dimana ngajalankeun gedong dina lingkungan anu béda-béda ngahasilkeun file anu tiasa dieksekusi lengkep idéntik.

utama inovasi Méson 0.51:

  • Ditambahkeun dukungan pikeun gedong transparan tina proyék-proyék anu aya anu nganggo skrip ngawangun CMake. Meson ayeuna tiasa langsung ngawangun subproyék basajan (sapertos perpustakaan tunggal) nganggo modul CMake, sami sareng subproyék standar (kalebet subproyék CMake tiasa disimpen dina diréktori subproyék);
  • Pikeun sadaya kompiler anu dianggo, tés awal kalebet ngalangkungan rakitan sareng palaksanaan file tés saderhana (pariksa sanity), henteu dugi ka nguji umbul-umbul anu dikhususkeun ku pangguna pikeun kompiler silang (ti ayeuna, kompiler asli tina platform ayeuna ogé dipariksa). .
  • Ditambahkeun kamampuan pikeun nangtukeun pilihan garis paréntah anu dianggo nalika kompilasi silang, kalayan ngariung ku netepkeun awalan platform sateuacan pilihan. Saméméhna, pilihan garis paréntah ngan nutupan wangunan asli jeung teu bisa dieusian pikeun cross-kompilasi. Pilihan garis paréntah ayeuna lumaku paduli naha anjeun ngawangun natively atawa cross-compile, mastikeun yén asli na cross-ngawangun ngahasilkeun hasil idéntik;
  • Ditambahkeun kamampuhan pikeun nangtukeun bendera "--cross-file" leuwih ti sakali dina garis paréntah pikeun daptar sababaraha cross-file;
  • rojongan ditambahkeun pikeun ICL kompiler (Intel C / C ++ kompiler) pikeun platform Windows (ICL.EXE na ifort);
  • Ditambahkeun rojongan toolkit awal pikeun CPU Xtensa (xt-xcc, xt-xc ++, xt-nm);
  • Metoda "get_variable" geus ditambahkeun kana obyék "dependency", nu ngidinan Anjeun pikeun meunangkeun nilai variabel tanpa merhatikeun jenis gumantungna ayeuna (contona, dep.get_variable(pkg-config : 'var- ngaran', cmake: 'COP_VAR_NAME));
  • Nambahkeun argumen pilihan rakitan target anyar, "link_language", pikeun sacara eksplisit netepkeun basa anu dianggo nalika nyauran linker. Contona, program Fortran utama bisa nelepon C / C ++ kode, nu bakal otomatis milih C / C ++ lamun linker Fortran kudu dipaké;
  • Penanganan umbul preprocessor CPPFLAGS parantos dirobih. Padahal Meson saacanna nyimpen CPPFLAGS sareng umbul kompilasi khusus basa (CFLAGS, CXXFLAGS) sacara misah, aranjeunna ayeuna diolah teu tiasa dipisahkeun sareng umbul-umbul anu didaptarkeun dina CPPFLAGS dianggo salaku sumber kompilasi umbul-umbul sanés pikeun basa anu ngadukung aranjeunna;
  • Kaluaran custom_target sareng custom_target [i] ayeuna tiasa dianggo salaku argumen dina operasi link_with sareng link_whole;
  • Generators ayeuna gaduh kamampuan pikeun netepkeun katergantungan tambahan nganggo pilihan "gumantung" (contona, generator(program_runner, output: ['@[email dijaga]'], gumantung: exe));
  • Ditambahkeun pilihan statik pikeun find_library pikeun ngidinan pilarian ngawengku ukur perpustakaan numbu statis;
  • Pikeun python.find_installation, kamampuhan pikeun nangtukeun ayana modul Python dibikeun pikeun versi husus tina Python geus ditambahkeun;
  • Ditambahkeun modul anyar unstable-kconfig pikeun parsing file kconfig;
  • Ditambahkeun paréntah anyar "subprojects foreach", anu nyandak paréntah kalayan argumen sareng ngajalankeun éta dina sadaya diréktori subproyék;

sumber: opennet.ru

Tambahkeun komentar