Rakirina pergala kombûnê ya Meson 1.3

Pergala avakirina Meson 1.3.0 hate berdan, ku ji bo avakirina projeyên wekî X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME û GTK tê bikar anîn. Koda Meson di Python de hatî nivîsandin û di bin lîsansa Apache 2.0 de destûrdar e.

Armanca sereke ya pêşkeftina Meson peydakirina leza bilind a pêvajoya meclîsê ya bi rehetî û karanîna hêsan e. Li şûna kargêriya çêkirinê, amûra Ninja di dema çêkirinê de ji hêla xwerû ve tê bikar anîn, lê paşnavên din ên wekî xcode û VisualStudio jî dikarin werin bikar anîn. Pergal xwedan hilgirê pêwendiya pir-platformê ye ku dihêle hûn Meson bikar bînin da ku pakêtan ji bo belavkirinan ava bikin. Rêzikên meclîsê bi zimanekî sadekirî yên domain-taybet têne destnîşan kirin, ji bikarhêner re pir têne xwendin û têgihîştin (wek ku ji hêla nivîskaran ve hatî armanc kirin, pêşdebir divê herî kêm wextê nivîsandina qaîdeyan derbas bike).

Bi karanîna GCC, Clang, Visual Studio û berhevkarên din, berhevkirin û avakirina xaçê li Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS û Windows-ê piştgirî dike. Di nav de C, C++, Fortran, Java û Rust jî di nav de, di nav zimanên bernamesaziyê yên cihêreng de, gengaz e ku meriv projeyan ava bike. Moda avakirina zêdekirî tê piştgirî kirin, ku tê de tenê pêkhateyên ku rasterast bi guhertinên ku ji avakirina paşîn ve hatine çêkirin ve têkildar in, ji nû ve têne çêkirin. Meson dikare were bikar anîn da ku avahiyên dubarekirî biafirîne, ku tê de xebitandina çêkirinê di hawîrdorên cihêreng de encam dide ku pelên darvekirî yên bi tevahî wekhev têne afirandin.

Nûvekirinên sereke yên Meson 1.3:

  • Vebijarka "şaş: rast" li rêbazên kontrolkirina berhevkeran zêde kir compiler.compiles(), compiler.links() û compiler.run(), ku hişyariyên berhevkerê wekî xeletî dihesibîne (dikare were bikar anîn da ku kontrol bike ka kod bêyî hişyariyê hatî çêkirin ).
  • Rêbaza has_define lê zêde kir ku pênaseya sembolê ji hêla pêşprocessor ve were kontrol kirin.
  • Parametreya macro_name li fonksiyona configure_file() hate zêdekirin, parastina makro ji bo girêdanên ducar bi navgîniya "#include" ("parêzvanan têde"), ku bi şêwaza makroyên bi zimanê C hatî sêwirandin (hêsankirina çêkirina pelên mîhengan bi dînamîk ve hatî çêkirin. navên makro).
  • Formatek derketinê ya nû li configure_file() - JSON ("format_output: json") hat zêdekirin.
  • Kapasîteya karanîna navnîşên nirxan li parametreyên c_std û cpp_std zêde kir (mînak, "vebijarkên_default: 'c_std=gnu11,c11').
  • Di modulên ku CustomTarget-ê ji bo pêvajoykirina pelan bikar tînin de, şiyana xweşkirina peyaman ji hêla kargêriya ninja ve hatî zêdekirin.
  • Build_target "jar" hat betalkirin û li şûna wê banga "jar()" tê pêşniyar kirin.
  • Parametreya 'env' li rêbaza generator.process() hatiye zêdekirin da ku guhêrbara hawîrdorê ku jenerator dê têketinê bi navgîniya wê pêvajo bike saz bike.
  • Dema ku navên mebestên çêkirinê yên ku bi çêkeran re têkildar in diyar dikin, paşpirtikên wekî "executable('foo', 'main.c', name_suffix: 'bar')" têne destûr kirin ku di heman pelrêçayê de çêkerên din çêbikin.
  • Parametreya "vs_module_defs" li fonksiyona exectuable() zêde kir da ku pelek def bikar bîne ku navnîşa fonksiyonên ku ji shared_module() re derbas bûne diyar dike.
  • Parametreya 'default_options' li fonksiyona find_program() zêde kir da ku vebijarkên xwerû ji bo bineprojeya paşverû destnîşan bike.
  • Rêbaza fs.relative_to() lê zêde kir, ku rêça têkildar ji bo argumana yekem, li gorî ya duyemîn vedigerîne, ger riya yekem hebe. Mînakî, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Parametreya jêrîn_symlinks li fonksiyonên install_data(), install_headers() û install_subdir() hatiye zêdekirin; Dema ku were danîn, girêdanên sembolîk têne şopandin.
  • Parametreyek "dagirtin" li rêbaza int.to_string() hat zêdekirin da ku rêzê bi sifirên pêşîn tije bike. Mînakî, gazîkirina peyama(n.to_string(dagirtin: 3)) ji bo n=4 dê rêzika "004" çêbike.
  • Armancek nû lê zêde kir, clang-tidy-fix, ku destnîşan dike ku karûbarê clang-tidy bi ala "-fix" dimeşîne.
  • Qabiliyeta diyarkirina paşgira (TARGET_SUFFIX) armanca kombûnê ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) li fermana berhevkirinê hat zêdekirin.
  • Guherbara jîngehê MESON_PACKAGE_CACHE_DIR lê zêde kir da ku rê li ber cacheya pakêtê (binprojeyên/pakêtcache) bişopîne, mînakî, dihêle hûn di çend projeyan de kaşek hevpar bikar bînin.
  • Fermana "meson setup --clearcache" zêde kir da ku cache-ya domdar paqij bike.
  • Piştgiriya peyva "pêwîst" li hemî rêbazên kontrolkirina berhevkarê "has_*" hatiye zêdekirin, wek nimûne, li şûna "assert(cc.has_function('some_function'))" hûn dikarin niha "cc.has_function('some_function' diyar bikin. , pêwîst: rast)”.
  • Peyvek nû, rust_abi, li fonksiyonên shared_library(), static_library(), library(), û shared_module() hat zêdekirin, ku divê li şûna rust_crate_type-ya nepenî were bikar anîn.

Source: opennet.ru

Add a comment