Pagpagawas sa sistema sa pagtukod sa Meson 0.51

gipatik pagtukod sa pagpagawas sa sistema Meson 0.51, nga gigamit sa pagtukod og mga proyekto sama sa X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ug GTK+. Ang Meson code gisulat sa Python ug gihatag lisensyado ubos sa Apache 2.0.

Ang yawe nga tumong sa pagpalambo sa Meson mao ang paghatag og taas nga tulin sa proseso sa asembliya inubanan sa kasayon ​​ug kasayon ​​sa paggamit. Imbis sa make utility, ang default build naggamit sa toolkit Ninja, apan posible usab nga gamiton ang ubang mga backend, sama sa xcode ug VisualStudio. Ang sistema adunay usa ka built-in nga multi-platform dependency handler nga nagtugot kanimo sa paggamit sa Meson sa paghimo og mga pakete alang sa mga pag-apod-apod. Ang mga lagda sa asembliya gipiho sa usa ka gipayano nga pinulongan nga piho sa domain, dali nga mabasa ug masabtan sa tiggamit (sama sa gituyo sa mga tagsulat, ang developer kinahanglan nga mogugol ug labing gamay nga oras sa pagsulat sa mga lagda).

Ang cross-compile ug pagtukod sa Linux, macOS ug Windows gamit ang GCC, Clang, Visual Studio ug uban pang mga compiler gisuportahan. Posible nga magtukod mga proyekto sa lainlaing mga sinultian nga programming, lakip ang C, C ++, Fortran, Java ug Rust. Gisuportahan ang incremental nga mode sa pagtukod, diin ang mga sangkap lamang nga direktang may kalabutan sa mga pagbag-o nga nahimo sukad ang katapusan nga pagtukod gitukod pag-usab. Ang Meson mahimong gamiton aron makamugna og balik-balik nga mga pagtukod, diin ang pagpadagan sa pagtukod sa lain-laing mga palibot moresulta sa paghimo sa hingpit nga managsama nga mga executable nga mga file.

nag-unang mga inobasyon Meson 0.51:

  • Gidugang nga suporta alang sa transparent nga pagtukod sa kasamtangan nga mga proyekto nga naggamit sa mga script sa pagtukod sa CMake. Ang Meson mahimo na karon nga direktang magtukod og yano nga mga subproyekto (sama sa usa ka librarya) gamit ang CMake module, susama sa standard nga mga subproject (lakip ang CMake subprojects mahimong ibutang sa subprojects directory);
  • Alang sa tanan nga gigamit nga mga compiler, ang pasiuna nga pagsulay gilakip pinaagi sa asembliya ug pagpatuman sa yano nga mga file sa pagsulay (pagsusi sa katin-awan), dili limitado sa pagsulay sa mga bandera nga gipiho sa tiggamit alang sa mga cross-compiler (gikan karon, gisusi usab ang mga compiler nga lumad sa karon nga plataporma) .
  • Gidugang ang abilidad sa paghubit sa mga kapilian sa command line nga gigamit sa panahon sa cross-compilation, uban ang pagbugkos pinaagi sa pagtino sa usa ka prefix sa plataporma sa wala pa ang kapilian. Kaniadto, ang mga kapilian sa command line naglangkob lamang sa mga lumad nga pagtukod ug dili matino alang sa cross-compilation. Ang mga opsyon sa command line magamit na karon bisan pa man kon ikaw nagtukod sa natively o cross-compile, pagsiguro nga ang lumad ug cross-builds mopatunghag parehas nga resulta;
  • Gidugang ang abilidad sa pagtino sa "--cross-file" nga bandera labaw sa kausa sa command line aron ilista ang daghang mga cross-file;
  • Gidugang nga suporta alang sa ICL compiler (Intel C/C++ Compiler) para sa Windows platform (ICL.EXE ug ifort);
  • Gidugang inisyal nga suporta sa toolkit alang sa CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Ang "get_variable" nga pamaagi gidugang sa "dependency" nga butang, nga nagtugot kanimo sa pagkuha sa bili sa usa ka variable nga walay pagtagad sa matang sa kasamtangan nga dependency (pananglitan, dep.get_variable(pkg-config : 'var- ngalan', cmake : 'COP_VAR_NAME));
  • Gidugang ang usa ka bag-ong argumento sa mga kapilian sa target nga asembliya, "link_language", aron klaro nga ipiho ang lengguwahe nga gigamit sa pagtawag sa linker. Pananglitan, ang usa ka nag-unang Fortran nga programa mahimong motawag sa C/C++ code, nga awtomatikong mopili sa C/C++ kon ang Fortran linker kinahanglang gamiton;
  • Ang pagdumala sa CPPFLAGS preprocessor flag nausab. Samtang gilain ni Meson ang CPPFLAGS ug ang mga flag sa compilation nga espesipiko sa pinulongan (CFLAGS, CXXFLAGS) nga gilain, kini karon giproseso nga dili mabulag ug ang mga bandila nga gilista sa CPPFLAGS gigamit isip laing tinubdan sa compilation nga mga bandila alang sa mga pinulongan nga nagsuporta niini;
  • Ang output sa custom_target ug custom_target [i] magamit na isip argumento sa link_with ug link_whole operations;
  • Ang mga generator karon adunay katakus sa pagtino sa dugang nga mga dependency gamit ang "depende" nga kapilian (pananglitan, generator(program_runner, output: ['@[protektado sa email]'], depende: exe));
  • Gidugang ang usa ka static nga kapilian sa find_library aron tugutan ang pagpangita nga maglakip lamang sa statically linked nga mga librarya;
  • Alang sa python.find_installation, ang abilidad sa pagtino sa presensya sa usa ka gihatag nga Python module alang sa usa ka piho nga bersyon sa Python gidugang;
  • Gidugang bag-ong module unstable-kconfig para sa pag-parse sa kconfig files;
  • Gidugang ang usa ka bag-ong mando nga "subprojects foreach", nga nagkuha usa ka mando nga adunay mga argumento ug gipadagan kini sa tanan nga mga direktoryo sa subproject;

Source: opennet.ru

Idugang sa usa ka comment