Meson куруу системасынын релизи 0.52

жарыяланган системасын чыгаруу Мезон 0.52, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME жана GTK+ сыяктуу долбоорлорду куруу үчүн колдонулат. Мезон коду Python жана жазылган берилген Apache 2.0 астында лицензияланган.

Meson иштеп чыгуунун негизги максаты - ынгайлуулугу жана колдонуунун жөнөкөйлүгү менен бирге чогултуу процессинин жогорку ылдамдыгын камсыз кылуу. Make утилитасынын ордуна, демейки түзүлүш инструменттер топтомун колдонот Ninja, бирок, ошондой эле, мисалы, xcode жана VisualStudio сыяктуу башка backends, колдонууга болот. Системада көп платформалуу көз карандылык иштеткичи бар, ал Mesonду бөлүштүрүү үчүн пакеттерди куруу үчүн колдонууга мүмкүндүк берет. Ассамблея эрежелери жөнөкөйлөштүрүлгөн домендик тилде көрсөтүлөт, колдонуучу үчүн өтө окумдуу жана түшүнүктүү (авторлор белгилегендей, иштеп чыгуучу эрежелерди жазууга аз убакыт коротушу керек).

Колдоого алынган кайчылаш компиляция жана Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS жана Windows боюнча GCC, Clang, Visual Studio жана башка компиляторлор аркылуу куруңуз. Ар кандай программалоо тилдеринде долбоорлорду курууга болот, анын ичинде C, C++, Fortran, Java жана Rust. Кошумча куруу режими колдоого алынат, мында акыркы түзүүдөн бери жасалган өзгөрүүлөргө түздөн-түз тиешелүү компоненттер гана кайра курулат. Meson кайталануучу түзүлүштөрдү түзүү үчүн колдонулушу мүмкүн, мында түзүүнү ар кандай чөйрөдө иштетүү толугу менен бирдей аткарылуучу файлдарды пайда кылат.

негизги инновациялар Мезон 0.52:

  • Emscriptenди компилятор катары колдонуу менен Webassembly үчүн эксперименталдык колдоо кошулду;
  • Illumos жана Solaris платформаларын колдоо кыйла жакшыртылган жана иштөө абалына келтирилген;
  • Эгер тутумда gettext инструменталдык комплекти орнотулбаса, gettext негизиндеги эл аралык скрипттердин этибарга алынбай калышын камсыздайт (мурда gettext жок системаларда i18n модулун колдонууда ката көрсөтүлгөн);
  • Статикалык китепканалар үчүн жакшыртылган колдоо. Орнотулбаган статикалык китепканаларды колдонууда көптөгөн көйгөйлөр чечилди;
  • Айлана-чөйрөнүн өзгөрмөлөрүн дайындоо үчүн сөздүктөрдү колдонуу мүмкүнчүлүгү кошулду. environment() чакырганда биринчи элементти эми сөздүк катары көрсөтсө болот, анда чөйрө өзгөрмөлөрү ачкыч/маани формасында аныкталган. Бул өзгөрмөлөр set() ыкмасы аркылуу өзүнчө коюлгандай айлана_объектке өткөрүлүп берилет. Сөздүктөр эми "env" аргументин колдогон ар кандай функцияларга да өтүшү мүмкүн;
  • Кошулган функция "runtarget alias_target(target_name, dep1, ...)" жаңы биринчи деңгээлдеги куруу максатын жаратат, аны тандалган куруу сервери менен чакырса болот (мис., "ninja target_name"). Бул куруу максаты эч кандай буйруктарды иштетпейт, бирок бардык көз карандылыктардын түзүлүшүн камсыздайт;
  • Эгерде “[касиеттер]” бөлүмүндө sys_root жөндөөсү бар болсо, кайчылаш компиляция учурунда PKG_CONFIG_SYSROOT_DIR чөйрө өзгөрмөсүн автоматтык орнотуу иштетилди;
  • Көрсөтүлгөн сыноо скрипти менен GDBди иштетүү үчүн "--gdb testname" опциясын көрсөтүүдө GDB мүчүлүштүктөрдү оңдоочу жолду аныктоо үчүн "--gdb-path" опциясы кошулду;
  • Бардык булак файлдары менен бул линтерди иштетүү үчүн кланг-тыкан куруу максатын автоматтык түрдө аныктоо кошулду. Максат системада clang-tidy жеткиликтүү болсо жана долбоордун тамырында “.clang-tidy” (же “_clang-tidy”) файлы аныкталса түзүлөт;
  • Clang кеңейтүүсүндө колдонуу үчүн көз карандылык ('блоктор') кошулду Blocks;
  • Шилтемечи жана компилятордун көрүнүштөрү бөлүнөт, бул компиляторлордун жана шилтемелердин ар кандай айкалыштарын колдонууга мүмкүндүк берет;
  • all_sources() методунан тышкары SourceSet объекттерине all_dependencies() ыкмасы кошулду;
  • run_project_tests.py ичинде "--only" параметри тандалган тесттерди иштетүү үчүн кошулган (мисалы, "python run_project_tests.py —only fortran python3");
  • find_program() функциясы эми программанын керектүү версияларын гана издөө мүмкүнчүлүгүнө ээ (версия "-version" опциясы менен программаны иштетүү менен аныкталат);
  • Символдордун экспортун көзөмөлдөө үчүн, shared_library() сыяктуу shared_module() функциясына vs_module_defs опциясы кошулган;
  • kconfig модулу киргизүү файлын көрсөтүү үчүн configure_file() колдоо үчүн кеңейтилген;
  • configure_file();
  • Архив түзүү үчүн “dist” буйругу биринчи деңгээлдеги командалардын категориясына жылдырылды (мурда команда ниндзяга байланган). Түзүлө турган архивдердин түрлөрүн аныктоо үчүн "--formats" опциясы кошулду (мисалы,
    "meson dist -formats=xztar,zip").

Source: opennet.ru

Комментарий кошуу