Meson құрастыру жүйесінің шығарылымы 0.52

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

Meson әзірлеудің негізгі мақсаты - ыңғайлылық пен пайдаланудың қарапайымдылығымен біріктірілген құрастыру процесінің жоғары жылдамдығын қамтамасыз ету. make утилитасының орнына әдепкі құрастыру құралдар жинағын пайдаланады Ninja, бірақ xcode және VisualStudio сияқты басқа серверлерді де пайдалануға болады. Жүйеде дистрибутивтерге арналған бумаларды құру үшін Meson қолданбасын пайдалануға мүмкіндік беретін кірістірілген көп платформалы тәуелділік өңдегіші бар. Құрастыру ережелері жеңілдетілген доменге тән тілде көрсетілген, қолданушыға жоғары оқылатын және түсінікті (авторлар ойлағандай, әзірлеуші ​​ережелерді жазуға аз уақыт жұмсауы керек).

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

басты инновациялар 0.52 мезон:

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

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

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