Meson 1.1.0 құрастыру жүйесінің шығарылымы жарияланды, ол X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME және GTK сияқты жобаларды құру үшін қолданылады. Meson коды Python тілінде жазылған және Apache 2.0 лицензиясы бойынша лицензияланған.
Meson әзірлеудің негізгі мақсаты - ыңғайлылық пен пайдаланудың қарапайымдылығымен біріктірілген жоғары жылдамдықты жинау процесін қамтамасыз ету. Жасаудың орнына құрастыру әдепкі бойынша Ninja құралдар жинағын пайдаланады, бірақ xcode және VisualStudio сияқты басқа серверлерді де пайдалануға болады. Жүйеде дистрибутивтерге арналған бумаларды құру үшін Meson қолданбасын пайдалануға мүмкіндік беретін кірістірілген көп платформалы тәуелділік өңдегіші бар. Құрастыру ережелері жеңілдетілген доменге тән тілде орнатылған, олар жақсы оқылатын және пайдаланушыға түсінікті (авторлардың идеясына сәйкес әзірлеуші ережелерді жазуға аз уақыт жұмсауы керек).
Айқас компиляция және құрастыру қолдау көрсетіледі. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Хайку, macOS и Windows GCC, Clang, Visual Studio және басқа компиляторларды пайдалану. Жобаларды C, C++, Fortran, Java және Rust сияқты әртүрлі бағдарламалау тілдерінде құруға болады. Алдыңғы құрастырудан бері енгізілген өзгерістерге тікелей қатысты компоненттерді ғана қайта құратын инкременттік құрастыру режимі қолдау табады. Meson қайталанатын құрастыруларды жасау үшін пайдаланылуы мүмкін, мұнда құрастыруды әртүрлі орталарда іске қосу толығымен бірдей орындалатын файлдарды жасауға әкеледі.
Meson 1.1 негізгі инновациялары:
- declare_dependency() функциясына link_who функциясын қажет етпей, нысандарды тікелей орындалатын файлдарға ішкі тәуелділіктер ретінде тіркеу үшін жаңа "objects:" аргументі қосылды.
- «meson devenv --dump» командасында енді стандартты шығыс ағынына шығарудың орнына орта айнымалыларын жазу үшін файлды көрсету мүмкіндігі бар.
- dependency() функциясына параметрлерді беруге дайындалу кезінде шартты конструкцияларды жасауды жеңілдету үшін FeatureOption.enable_if және FeatureOption.disable_if әдістері қосылды. opt = get_option('feature').disable_if(not foo, error_message : 'foo функциясы да қосылмаған кезде функцияны қосу мүмкін емес') dep = dependency('foo', required : opt)
- Жасалынған нысандар «объектілер:» аргументтері ретінде берілуі мүмкін.
- Жоба функциясы енді жоба лицензиясы туралы ақпараты бар файлдарды орнатуды қолдайды.
- «sudo meson install» командасын іске қосу мақсатты платформаларды қайта құру кезінде артықшылықтардың жойылуын қамтамасыз етеді.
- Енді "meson install" командасы root құқықтарын алу үшін бөлек өңдегішті көрсетуге мүмкіндік береді (мысалы, polkit, sudo, opendoas немесе $MESON_ROOT_CMD таңдай аласыз). Интерактивті емес режимде "meson install" командасын іске қосу енді құқықтарды арттыруға тырыспайды.
- meson_options.txt файлының орнына meson.options файлынан оқу параметрлерін қолдау қосылды.
- Өзін-өзі талдаудың барысы туралы ақпараттың шығысын stderr-ге қайта бағыттауды қамтамасыз етті.
- Тек орнату ережелері бар және құрастыру ережелерін қамтымайтын жобаларды жасау үшін жаңа "none" (--backend=none) сервері қосылды.
- pybind11 скриптін пайдаланбай, dependency('pybind11') функцияларына pkg-config және cmake функцияларымен жұмыс істеуге мүмкіндік беретін жаңа pybind11 тәуелділігі қосылды.
- Бос builddir файлымен "--reconfigure" және "--wipe" опцияларын (meson setup --reconfigure builddir және meson setup --wipe builddir) пайдалануға рұқсат етілген.
- meson.add_install_script() функциясына dry_run кілт сөзін қолдау қосылды, ол «meson install --dry-run» шақыру кезінде арнайы орнату сценарийлерін іске қосуға мүмкіндік береді.
Ақпарат көзі: opennet.ru
