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

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

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

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

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

  • Дастгирии иловашуда барои сохтани шаффофи лоиҳаҳои мавҷуда, ки скриптҳои сохтани CMake -ро истифода мебаранд. Месон акнун метавонад мустақиман бо истифода аз модули CMake зерлоиҳаҳои оддиро (ба мисли китобхонаҳои ягона) созад, ки ба зерлоиҳаҳои стандартӣ монанд аст (аз ҷумла зерлоиҳаҳои CMake метавонанд дар феҳристи зерлоиҳаҳо ҷойгир карда шаванд);
  • Барои ҳама компиляторҳои истифодашуда, санҷиши пешакӣ тавассути ҷамъоварӣ ва иҷрои файлҳои оддии санҷишӣ (санҷиши солим) дохил карда мешавад, ки бо санҷиши парчамҳои аз ҷониби корбар муайяншуда барои кросс-компиляторҳо маҳдуд намешавад (аз ин ба баъд, компиляторҳое, ки дар платформаи ҷорӣ ҳастанд, низ тафтиш карда мешаванд) .
  • Имконияти муайян кардани имконоти сатри фармоне, ки ҳангоми байниҳамдигарӣ истифода мешаванд, бо ҳатмӣ тавассути муайян кардани префикси платформа пеш аз опсия илова карда шудааст. Пештар, имконоти сатри фармон танҳо сохторҳои ватаниро дар бар мегирифт ва онҳоро барои ҷамъбасти байниҳамдигарӣ муайян кардан мумкин набуд. Параметрҳои сатри фармон ҳоло новобаста аз он ки шумо ба таври аслӣ сохта истодаед ё мутақобила тартиб дода истодаед, татбиқ карда мешавад, то боварӣ ҳосил кунед, ки сохторҳои аслӣ ва байнисоҳавӣ натиҷаҳои якхела медиҳанд;
  • Имконияти муайян кардани парчами "--cross-file" дар сатри фармон барои рӯйхати якчанд кросс-файлҳо илова карда шуд;
  • Дастгирии иловашуда барои компилятори ICL (Intel C/C++ Compiler) барои платформаи Windows (ICL.EXE ва ifort);
  • Дастгирии ибтидоии асбобҳо барои CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Усули "get_variable" ба объекти "dependency" илова карда шудааст, ки ба шумо имкон медиҳад, ки арзиши тағирёбандаро бе назардошти намуди вобастагии ҷорӣ ба даст оред (масалан, dep.get_variable(pkg-config : 'var- ном', cmake : 'COP_VAR_NAME));
  • Аргументи нави вариантҳои маҷлиси ҳадаф, "link_language" илова карда шуд, то забони ба таври возеҳ муайян кардани забони истифодашаванда ҳангоми зангзании пайвандкунанда. Масалан, барномаи асосии Fortran метавонад рамзи C/C++-ро даъват кунад, ки ҳангоми истифодаи пайвандгари Fortran ба таври худкор C/C++-ро интихоб мекунад;
  • Коркарди парчамҳои пешакии CPPFLAGS тағир дода шуд. Дар ҳоле ки Месон қаблан CPPFLAGS ва парчамҳои компиляцияи хоси забонро (CFLAGS, CXXFLAGS) алоҳида нигоҳ дошта буд, ҳоло онҳо ба таври ҷудогона коркард мешаванд ва парчамҳои дар CPPFLAGS номбаршуда ҳамчун манбаи дигари парчамҳои компиляция барои забонҳое, ки онҳоро дастгирӣ мекунанд, истифода мешаванд;
  • Натиҷаи custom_target ва custom_target[i] акнун метавонад ҳамчун далел дар амалиёти link_with ва link_whole истифода шавад;
  • Ҳоло генераторҳо қобилияти муайян кардани вобастагии иловагиро бо истифода аз имконоти "вобаста" доранд (масалан, генератор(program_runner, баромад: ['@"[почтаи электронӣ ҳифз карда шудааст]'], вобаста аст: exe));
  • Имконияти статикӣ ба find_library илова карда шуд, то ба ҷустуҷӯ иҷозат диҳад, ки танҳо китобхонаҳои статикӣ алоқамандро дар бар гирад;
  • Барои python.find_installation, қобилияти муайян кардани мавҷудияти модули додашудаи Python барои версияи мушаххаси Python илова карда шудааст;
  • Модули нави unstable-kconfig барои таҳлили файлҳои kconfig илова карда шуд;
  • Фармони нави "subprojects foreach" илова карда шуд, ки фармонро бо аргументҳо қабул мекунад ва онро дар ҳама директорияҳои зерлоиҳа иҷро мекунад;

Манбаъ: opennet.ru

Илова Эзоҳ