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

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

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

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

асосӣ навовариҳо Мезон 0.52:

  • Дастгирии таҷрибавӣ барои Webassembly бо истифода аз Emscripten ҳамчун компилятор илова карда шуд;
  • Дастгирии платформаҳои Illumos ва Solaris ба таври назаррас такмил дода шуда, ба ҳолати корӣ оварда шудааст;
  • Кафолат медиҳад, ки скриптҳои байналмиллалии ба gettext асосёфта сарфи назар карда мешаванд, агар дар система асбобҳои gettext насб нашуда бошад (қаблан ҳангоми истифодаи модули i18n дар системаҳои бе gettext хатогӣ нишон дода мешуд);
  • Дастгирии мукаммал барои китобхонаҳои статикӣ. Бисёр мушкилот ҳангоми истифодаи китобхонаҳои статикии насбнашуда ҳал карда шуданд;
  • Имконияти истифодаи луғатҳо барои таъини тағирёбандаҳои муҳити зист илова карда шуд. Ҳангоми занг задани environment(), унсури аввалро акнун метавон ҳамчун луғат муайян кард, ки дар он тағирёбандаҳои муҳити зист дар шакли калид/арзиш муайян карда мешаванд. Ин тағирёбандаҳо ба муҳити_объект интиқол дода мешаванд, ки гӯё онҳо ба таври инфиродӣ тавассути усули set() муқаррар карда шудаанд. Луғатҳоро акнун метавон ба вазифаҳои гуногуне интиқол дод, ки далели "env"-ро дастгирӣ мекунанд;
  • Функсияи иловашудаи "runtarget alias_target(target_name, dep1, ...)", ки ҳадафи нави сохтани сатҳи аввалро эҷод мекунад, ки онро бо пуштибонии интихобшуда даъват кардан мумкин аст (масалан, "номи ninja target_name"). Ин ҳадафи бунёдӣ ягон фармонро иҷро намекунад, балки кафолат медиҳад, ки ҳама вобастагӣ сохта шудаанд;
  • Танзими худкори тағйирёбандаи муҳити PKG_CONFIG_SYSROOT_DIR ҳангоми байниҳамдигарӣ фаъол карда шуд, агар дар бахши "[хусусиятҳо]" танзимоти sys_root мавҷуд бошад;
  • Опсияи "--gdb-path" барои муайян кардани роҳ ба ислоҳкунандаи GDB ҳангоми муайян кардани опсияи "--gdb testname" барои иҷро кардани GDB бо скрипти санҷишии мушаххас илова карда шуд;
  • Муайянкунии автоматии ҳадафи сохтани ҷанҷол илова карда шуд, то ин линтерро бо ҳама файлҳои манбаъ иҷро кунад. Ҳадаф сохта мешавад, агар clang-tidy дар система дастрас бошад ва файли ".clang-tidy" (ё "_clang-tidy") дар решаи лоиҳа муайян карда шавад;
  • Вобастагии иловашуда ('блокҳо') барои истифода дар тамдиди Clang блокҳои;
  • Намоишҳои пайвандкунанда ва компилятор аз ҳам ҷудо карда шудаанд, ки имкон медиҳанд, ки омезиши гуногуни компиляторҳо ва пайвандкунандагон истифода шаванд;
  • Илова ба усули all_dependencies() ба объектҳои SourceSet илова ба all_sources() усули;
  • Дар run_project_tests.py, имконоти "--only" барои интихобан иҷро кардани санҷишҳо илова карда шудааст (масалан, "python run_project_tests.py —танҳо fortran python3");
  • Функсияи find_program() акнун имкони ҷустуҷӯи танҳо версияҳои лозимии барномаро дорад (версияи он тавассути иҷрои барнома бо опсияи "-version" муайян карда мешавад);
  • Барои назорати содироти рамзҳо, опсияи vs_module_defs ба функсияи shared_module() илова карда шудааст, ки ба shared_library();
  • Модули kconfig барои дастгирии configure_file () барои муайян кардани файли воридотӣ васеъ карда шудааст;
  • Имконияти муайян кардани файлҳои вурудии сершумор барои коркардкунандагони "command:" ба configure_file();
  • Фармони "dist" барои эҷоди бойгонӣ ба категорияи фармонҳои дараҷаи аввал гузаронида шуд (қаблан фармон ба ниндзя вобаста буд). Опсияи "--formats" барои муайян кардани навъҳои бойгониҳои сохташуда илова карда шуд (масалан,
    "meson dist -formats=xztar,zip").

Манбаъ: opennet.ru

Илова Эзоҳ