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 қолданбасын пайдалануға мүмкіндік беретін кірістірілген көп платформалы тәуелділік өңдегіші бар. Құрастыру ережелері жеңілдетілген доменге тән тілде орнатылған, олар жақсы оқылатын және пайдаланушыға түсінікті (авторлардың идеясына сәйкес әзірлеуші ​​ережелерді жазуға аз уақыт жұмсауы керек).

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

Meson 1.1 негізгі инновациялары:

  • Жаңа "объектілер:" аргументі declare_dependency() қызметіне сілтеме_who пайдалануды қажет етпейтін ішкі тәуелділіктер түріндегі орындалатын файлдарға нысандарды тікелей қосу үшін қосылды.
  • "meson devenv -dump" пәрменінде енді оны стандартты шығысқа басып шығарудың орнына ортаның айнымалы мәндерін жазу үшін файлды көрсету опциясы бар.
  • Dependency() функциясына параметрлерді беруге дайындық кезінде шартты жасауды жеңілдету үшін FeatureOption.enable_if және FeatureOption.disable_if әдістері қосылды. opt = get_option('функция').disable_if(foo емес, error_message : 'foo да қосылмаған кезде мүмкіндікті қосу мүмкін емес') dep = тәуелділік('foo', қажет : таңдау)
  • Жасалған нысандарды аргумент ретінде «нысандарға:» беруге рұқсат етіледі.
  • Жоба функциясы енді жоба лицензиялары туралы ақпараты бар файлдарды орнатуды қолдайды.
  • "sudo meson install" іске қосылуы мақсатты платформалар үшін қайта құру кезінде артықшылықтардың қалпына келтірілуін қамтамасыз етеді.
  • "Meson install" пәрмені түбірлік құқықтарды алу үшін бөлек өңдегішті көрсету мүмкіндігін береді (мысалы, polkit, sudo, opendoas немесе $MESON_ROOT_CMD таңдауға болады). Интерактивті емес режимде "meson install" функциясын іске қосу артықшылықтарды ұлғайтуға тырыспайды.
  • meson_options.txt орнына meson.options файлынан опцияларды оқуға қолдау қосылды.
  • Интроспекцияның барысы туралы ақпаратты stderr-ге қайта бағыттау қарастырылған.
  • Тек орнату ережелері бар және құрастыру ережелері жоқ жобаларды жасау үшін жаңа "жоқ" сервері қосылды (--backend=none).
  • Тәуелділікке('pybind11') pybind11-config сценарийін пайдаланбай pkg-config және cmake-мен жұмыс істеуге мүмкіндік беретін жаңа pybind11 тәуелділігі қосылды.
  • "--қайта конфигурациялау" және "--wipe" опцияларына рұқсат етіледі (мезонды орнату --құрылымды қайта конфигурациялау және мезонды орнату --құрылымды өшіру ) бос builddir.
  • "meson install --dry-run" деп шақырған кезде өзіңіздің орнату сценарийлеріңізді іске қосуға мүмкіндік беру үшін meson.add_install_script() қызметіне dry_run кілт сөзіне қолдау қосылды.

Ақпарат көзі: opennet.ru

пікір қалдыру