Нашри системаи сохтани Meson 1.1

Нашри системаи сохтани Meson 1.1.0 нашр шуд, ки барои сохтани лоиҳаҳо ба монанди X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ва GTK истифода мешавад. Рамзи Meson дар Python навишта шудааст ва тибқи иҷозатномаи Apache 2.0 иҷозатнома дорад.

Ҳадафи асосии рушди Meson таъмини раванди тези васлкунӣ дар якҷоягӣ бо роҳат ва осонии истифода мебошад. Ба ҷои сохтан, сохтан ба таври нобаёнӣ асбоби Ninja -ро истифода мебарад, аммо дигар пуштибонҳо ба монанди xcode ва VisualStudio низ метавонанд истифода шаванд. Система дорои коркарди вобастагии бисёрплатформаи дарунсохт мебошад, ки ба шумо имкон медиҳад Meson-ро барои сохтани бастаҳо барои тақсимот истифода баред. Қоидаҳои ассамблея бо забони соддакардашудаи мушаххаси домен муқаррар карда шудаанд, онҳо барои корбар хуб хондан ва фаҳмо мебошанд (мувофиқи идеяи муаллифон, таҳиякунанда бояд ҳадди аққал вақти навиштани қоидаҳои навиштанро сарф кунад).

Crosscompilyasiya ва сохтан дар Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ва Windows бо истифода аз GCC, Clang, Visual Studio ва дигар компиляторҳо дастгирӣ карда мешавад. Лоиҳаҳоро бо забонҳои гуногуни барномасозӣ, аз ҷумла C, C++, Fortran, Java ва Rust сохтан мумкин аст. Реҷаи афзояндаи сохтмон дастгирӣ карда мешавад, ки дар он танҳо ҷузъҳое, ки мустақиман бо тағирот аз замони охирин сохташуда алоқаманданд, аз нав сохта мешаванд. Месонро барои тавлиди сохторҳои такроршаванда истифода бурдан мумкин аст, ки дар он ҷо кор кардани сохтмон дар муҳитҳои гуногун боиси иҷрошавандаҳои комилан якхела мегардад.

Навовариҳои асосии Meson 1.1:

  • Аргументи нави "объектҳо:" ба declare_dependency() илова карда шуд, то объектҳоро мустақиман ба файлҳои иҷрошаванда ҳамчун вобастагии дохилӣ, ки link_who-ро талаб намекунад, замима кунад.
  • Фармони "meson devenv --dump" дорои қобилияти ихтиёрӣ барои муайян кардани файл барои навиштани тағирёбандаҳои муҳити зист ба ҷои баромад ба ҷараёни стандартии баромад мебошад.
  • Усулҳои FeatureOption.enable_if ва FeatureOption.disable_if илова карда шуданд, то сохтани шартҳо ҳангоми омодагӣ барои интиқоли параметрҳо ба функсияи dependency() осонтар шавад. opt = get_option('хусусият').disable_if(на foo, error_message : 'Функсияро фаъол кардан мумкин нест, вақте ки foo низ фаъол нест') dep = вобастагӣ ('foo', лозим : opt)
  • Иҷозат дода мешавад, ки объектҳои тавлидшуда дар байни далелҳои "объектҳо:".
  • Функсияи лоиҳа насби файлҳоро бо маълумот дар бораи иҷозатномаҳои лоиҳа дастгирӣ мекунад.
  • Иҷрои "sudo meson install" барқароркунии имтиёзро ҳангоми барқарорсозӣ барои платформаҳои мавриди ҳадаф таъмин мекунад.
  • Фармони "meson install" имкон медиҳад, ки коркардкунандаи алоҳида барои гирифтани иҷозатҳои реша (масалан, шумо метавонед polkit, sudo, opendoas ё $MESON_ROOT_CMD-ро интихоб кунед). Иҷрои "meson install" дар реҷаи ғайриинтерактивӣ дигар кӯшиши баланд бардоштани имтиёзҳоро надорад.
  • Дастгирии иловагӣ барои хондани имконоти файли meson.options ба ҷои meson_options.txt.
  • Ба stderr равона кардани баромади маълумот дар бораи пешрафти интроспекция таъмин карда шудааст.
  • Барои эҷоди лоиҳаҳое, ки танҳо қоидаҳои насбкуниро доранд ва қоидаҳои бунёд надоранд, пуштибони нави "нест" (--backend=none) илова карда шудааст.
  • Барои кор кардани вобастагӣ('pybind11') бо pkg-config ва cmake бидуни истифодаи скрипти pybind11-config вобастагии нав pybind11 илова карда шуд.
  • Параметрҳои "--reconfigure" ва "--wipe" (meson setup --reconfigure builddir ва meson setup --wipe builddir ) бо builddir-и холӣ иҷозат дода мешаванд.
  • meson.add_install_script() барои калимаи калидии dry_run дастгирӣ илова кард, ки ба шумо имкон медиҳад скриптҳои насбкунии шахсии худро ҳангоми занги "meson install --dry-run" иҷро кунед.

Манбаъ: opennet.ru

Илова Эзоҳ