Ho lokolloa ha sistimi ea Meson 1.3

Ho lokolloa ha mokhoa oa ho haha ​​oa Meson 1.3.0 o hatisitsoe, o sebelisetsoang ho haha ​​merero e kang X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME le GTK. Khoutu ea Meson e ngotsoe ka Python mme e na le laesense tlasa laesense ea Apache 2.0.

Morero oa mantlha oa nts'etsopele ea Meson ke ho fana ka ts'ebetso ea kopano e potlakileng e kopantsoeng le boiketlo le tšebeliso e bonolo. Sebakeng sa ho etsa, moaho o sebelisa sesebelisoa sa "Ninja" ka boiketsetso, empa li-backend tse ling tse kang xcode le VisualStudio le tsona li ka sebelisoa. Sistimi e na le sesebelisoa sa ho its'etleha ka har'a li-platform tse ngata se u lumellang hore u sebelise Meson ho aha liphutheloana tsa kabo. Melao ea kopano e behiloe ka puo e nolofalitsoeng e khethehileng ea domain, e baloa hantle ebile e utloisisoa ho mosebedisi (ho ea ka maikutlo a bangoli, moqapi o lokela ho qeta bonyane ba nako ea ho ngola melao).

Ho kopanya le ho aha ho Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS le Windows ho sebelisa GCC, Clang, Visual Studio le li-compilers tse ling. Hoa khoneha ho aha merero ka lipuo tse fapaneng tsa lenaneo, ho kenyelletsa C, C ++, Fortran, Java le Rust. Mokhoa oa ho haha ​​oa ho eketsa o tšehetsoa, ​​oo ho oona feela likarolo tse amanang ka ho toba le liphetoho tse entsoeng ho tloha ha mohaho oa ho qetela o tsosolosoa. Meson e ka sebelisoa ho hlahisa meaho e ka phetoang, moo ho tsamaisa moaho libakeng tse fapaneng ho fella ka li-executable tse ts'oanang ka botlalo.

Mekhoa e mecha ea Meson 1.3:

  • E kentse khetho ea "werror: true" ho mekhoa ea ho hlahloba moqapi compiler.compiles(), compiler.links() le compiler.run(), e nkang litemoso tsa moqapi e le liphoso (e ka sebelisoa ho hlahloba hore khoutu e hahiloe ntle le litemoso. ).
  • E kentse has_define mokhoa oa ho lekola tlhaloso ea matšoao ka preprocessor.
  • Macro_name parameter e kenyelelitsoe ho configure_file () ts'ebetso, e eketsa ts'ireletso ea macro bakeng sa likhokahano tse peli ka "#include" ("kenyelletsa balebeli"), e entsoeng ka mokhoa oa macros ka puo ea C (ho nolofatsa ho thehoa ha lifaele tsa tlhophiso ka matla. mabitso a maholo).
  • Ho kentsoe sebopeho se secha sa tlhahiso ho configure_file() - JSON ("output_format: json").
  • E kentse bokhoni ba ho sebelisa manane a boleng ho liparamente tsa c_std le cpp_std (mohlala, "default_options: 'c_std=gnu11,c11′').
  • Ho li-module tse sebelisang CustomTarget ho sebetsana le lifaele, bokhoni ba ho iketsetsa melaetsa e hlahisoang ke lisebelisoa tsa ninja bo kentse.
  • The build_target "jar" ha e sa sebetsa, 'me ho buelloa mohala oa "jar()".
  • The 'env' paramethara e kentsoe ho jenereithara.process() mokhoa oa ho seta phetoho ea tikoloho eo jenereithara e tla sebetsa ho kenya letsoho.
  • Ha ho hlakisoa mabitso a sepheo sa moaho a amahanngoang le tse ka phethisoang, li-suffixes tse kang "executable('foo', 'main.c', name_suffix: 'bar')" li lumelloa ho hlahisa tse ling tse phethahatsoang bukeng e le 'ngoe.
  • E kentse "vs_module_defs" parameter ho exectuable() tshebetso ho sebelisa faele ea def e hlalosang lenane la mesebetsi e fetiselitsoeng ho shared_module ().
  • E kenyellelitsoe 'default_options' parameter ho fumana_program() tshebetso ho seta likhetho tsa kamehla bakeng sa subproject e ka tlase.
  • E kentse mokhoa oa fs.relative_to(), o khutlisetsang tsela e lekanyelitsoeng bakeng sa khang ea pele, e amanang le ea bobeli, haeba tsela ea pele e le teng. Mohlala, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • The following_symlinks parameter e kenyelitsoe ho install_data (), install_headers () le install_subdir () mesebetsi; ha e behiloe, lihokelo tsa tšoantšetso li lateloa.
  • Ho kentsoe parameter ea "tlatsa" mokhoeng oa int.to_string() ho tlatsa khoele ka li-zero tse etellang pele. Mohlala, ho letsetsa molaetsa(n.to_string(fill: 3)) bakeng sa n=4 ho tla hlahisa khoele "004".
  • E kenyellelitse sepheo se secha, clang-tidy-fix, e hlalosang ho sebetsa ha clang-tidy utility ka "-fix" folakha.
  • Bokhoni ba ho hlakisa suffix (TARGET_SUFFIX) ea sepheo sa kopano ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) e kentsoe taelong ea pokello.
  • Phapang e kenyellelitsoeng ea tikoloho MESON_PACKAGE_CACHE_DIR ho fetisa tsela ea cache ea sephutheloana (subprojects/packagecache), mohlala, ho u lumella ho sebelisa cache e arolelanoang mererong e mengata.
  • E kentse taelo ea "meson setup --clearcache" ho hlakola cache e phehellang.
  • Tšehetso ea lentsoe la sehlooho "e hlokehang" e kenyelelitsoe mekhoeng eohle ea ho hlahloba "has_*" ea compiler, mohlala, sebakeng sa "assert(cc.has_function('some_function'))" joale u ka hlakisa "cc.has_function('some_function' , e hlokahalang: 'nete)".
  • Lentsoe le lecha la sehlooho, rust_abi, le kenyellelitsoe ho shared_library(), static_library(), library (), le shared_module() mesebetsi, e lokelang ho sebelisoa ho fapana le rust_crate_type e tlositsoeng.

Source: opennet.ru

Eketsa ka tlhaloso