Meson tsim qhov system tso tawm 1.3

Meson 1.3.0 tsim system tau raug tso tawm, uas yog siv los tsim cov haujlwm xws li X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME thiab GTK. Meson's code yog sau hauv Python thiab tau tso cai raws li Apache 2.0 daim ntawv tso cai.

Lub hom phiaj tseem ceeb ntawm Meson txoj kev loj hlob yog muab kev kub ceev ntawm cov txheej txheem sib dhos ua ke nrog kev yooj yim thiab yooj yim ntawm kev siv. Hloov chaw siv hluav taws xob, cov khoom siv Ninja siv los ntawm lub neej ntawd thaum lub tsev, tab sis lwm cov backends xws li xcode thiab VisualStudio kuj siv tau. Lub kaw lus muaj ib tug built-in multi-platform dependency handler uas tso cai rau koj siv Meson los tsim cov pob khoom rau kev faib khoom. Cov kev cai sib dhos tau teev nyob rau hauv cov lus yooj yooj yim-cov lus tshwj xeeb, nyeem tau yooj yim thiab nkag siab rau tus neeg siv (raws li tau npaj los ntawm cov kws sau ntawv, tus tsim tawm yuav tsum siv sijhawm tsawg kawg nkaus sau cov cai).

Txhawb kev sib sau ua ke thiab tsim ntawm Linux, Illumos / Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS thiab Windows siv GCC, Clang, Visual Studio thiab lwm yam compilers. Nws tuaj yeem tsim cov haujlwm hauv ntau hom lus programming, suav nrog C, C ++, Fortran, Java thiab Rust. Incremental build mode yog txaus siab, nyob rau hauv uas tsuas yog cov khoom ncaj qha ntsig txog cov kev hloov pauv tau ua txij li thaum kawg tsim tau rov tsim dua. Meson tuaj yeem siv los tsim cov kev tsim rov ua dua tshiab, uas ua haujlwm ntawm kev tsim hauv qhov chaw sib txawv ua rau muaj cov ntaub ntawv zoo tib yam nkaus.

Kev tsim kho tseem ceeb ntawm Meson 1.3:

  • Ntxiv qhov kev xaiv "werror: true" rau cov kev kuaj xyuas compiler compiler.compiles(), compiler.links() thiab compiler.run(), uas kho cov lus ceeb toom ntawm compiler ua yuam kev (yuav siv tau los xyuas tias cov cai tsim tsis muaj kev ceeb toom. ).
  • Ntxiv has_define txoj kev los xyuas cov cim txhais los ntawm preprocessor.
  • Lub macro_name parameter tau ntxiv rau qhov configure_file() muaj nuj nqi, ntxiv kev tiv thaiv macro rau ob qho kev sib txuas los ntawm "#include" ("nrog rau cov neeg tiv thaiv"), tsim nyob rau hauv cov style ntawm macros hauv C hom lus (simplifying lub creation ntawm configure ntaub ntawv nrog dynamic macro npe).
  • Ib hom ntawv tso zis tshiab tau ntxiv rau configure_file() - JSON ("output_format: json").
  • Ntxiv lub peev xwm los siv cov npe ntawm qhov tseem ceeb rau c_std thiab cpp_std tsis (piv txwv li, β€œdefault_options: 'c_std=gnu11,c11β€²').
  • Hauv cov qauv uas siv CustomTarget los ua cov ntaub ntawv, lub peev xwm los kho cov lus tso tawm los ntawm ninja utility tau ntxiv.
  • Lub build_target "jar" tau deprecated thiab "jar()" hu tau raug pom zoo hloov.
  • Qhov 'env' parameter tau ntxiv rau generator.process() txoj kev los teeb tsa ib puag ncig hloov pauv los ntawm qhov uas lub tshuab hluav taws xob yuav ua cov tswv yim.
  • Thaum qhia txog cov npe tsim lub hom phiaj cuam tshuam nrog executables, suffixes xws li "executable('foo', 'main.c', name_suffix: 'bar')" raug tso cai los tsim cov executables ntxiv hauv tib phau ntawv.
  • Ntxiv qhov "vs_module_defs" parameter rau qhov ua tau zoo () ua haujlwm siv cov ntaub ntawv def uas txhais cov npe ntawm cov haujlwm dhau mus rau shared_module().
  • Ntxiv 'default_options' parameter rau find_program() muaj nuj nqi los teeb tsa cov kev xaiv ua ntej rau qhov project fallback.
  • Ntxiv fs.relative_to() txoj kev, uas rov qab txoj kev txheeb ze rau thawj qhov kev sib cav, txheeb ze rau qhov thib ob, yog tias thawj txoj hauv kev muaj. Piv txwv li, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Cov nram qab no_symlinks parameter tau ntxiv rau lub install_data(), install_headers() thiab install_subdir() ua haujlwm; thaum teeb tsa, cov cim txuas tau ua raws.
  • Ib qho "sau" parameter tau ntxiv rau int.to_string() txoj hauv kev los ua kom tiav cov hlua nrog rau xoom. Piv txwv li, hu xov tooj (n.to_string(sau: 3)) rau n=4 yuav tsim txoj hlua "004".
  • Ntxiv lub hom phiaj tshiab, clang-tidy-fix, uas qhia meej txog kev khiav haujlwm ntawm clang-tidy nrog tus chij "-fix".
  • Lub peev xwm los qhia cov lus xaus (TARGET_SUFFIX) ntawm lub hom phiaj sib dhos ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) tau ntxiv rau cov lus txib.
  • Ntxiv ib puag ncig hloov pauv MESON_PACKAGE_CACHE_DIR txhawm rau hla txoj hauv kev mus rau pob cache (subprojects/packagecache), piv txwv li, tso cai rau koj siv cov cache sib koom hauv ntau qhov haujlwm.
  • Ntxiv "meson teeb --clearcache" hais kom ua kom tshem tawm cov cache tsis tu ncua.
  • Kev them nyiaj yug rau "yuav tsum tau" lo lus tseem ceeb tau ntxiv rau tag nrho "has_*" compiler check txoj kev, piv txwv li, es tsis txhob "assert(cc.has_function('some_function'))" tam sim no koj tuaj yeem qhia "cc.has_function('some_function') , xav tau: tseeb).
  • Ib lo lus tseem ceeb tshiab, rust_abi, tau muab ntxiv rau hauv shared_library(), static_library(), library(), thiab shared_module() functions, uas yuav tsum tau siv es tsis txhob ntawm cov deprecated rust_crate_type.

Tau qhov twg los: opennet.ru

Ntxiv ib saib