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

Автоқұралдарға балама ретінде әрекет ететін және KDE, LLVM/Clang, MySQL, MariaDB, ReactOS және Blender сияқты жобаларда қолданылатын CMake 3.21 кросс-платформалық ашық құрастыру сценарий генераторының шығарылымы ұсынылған. CMake коды C++ тілінде жазылған және BSD лицензиясы бойынша таратылады.

CMake қарапайым сценарий тілін, модульдер арқылы функционалдылықты кеңейту құралын, тәуелділіктердің ең аз санын (M4, Perl немесе Python-ға байланыстырусыз), кэштеуді қолдауды, кросс-компиляцияға арналған құралдардың болуымен, құрастыруды құруды қолдауымен ерекшеленеді. құрастыру жүйелері мен компиляторларының кең ауқымына арналған файлдар, сынақ сценарийлерін және құрастыру пакеттерін анықтауға арналған ctest және cpack утилиталарының болуы, құрастыру параметрлерін интерактивті орнатуға арналған cmake-gui утилитасы.

Негізгі жақсартулар:

  • CUDA қолданбаларын портативті C++ кодына түрлендіруді жеңілдетуге бағытталған C++ тілінің диалектісі, Portability үшін Гетерогенді-есептеу интерфейсі (HIP) бағдарламалау тіліне толық қолдау қосылды.
  • Visual Studio 17 2022 үшін Visual Studio 2022 Preview 1.1 негізіндегі құрастыру сценарийі генераторы қосылды.
  • Makefile және Ninja құрастыру сценарий генераторлары C_LINKER_LAUNCHER және CXX_LINKER_LAUNCHER сипаттарын қосты, олар статикалық анализаторлар сияқты байланыстырушыны іске қосатын көмекші утилиталарды іске қосу үшін пайдаланылуы мүмкін. Генератор көрсетілген утилиталарды іске қосады, оларға сілтеменің атын және оның аргументтерін береді.
  • “C_STANDARD” және “OBJC_STANDARD” сипаттарында, сондай-ақ компилятор параметрлерін орнату құралдарында (Компиляция мүмкіндіктері) C17 және C23 спецификацияларына қолдау қосылды.
  • Құралдар тізбегіне жолды анықтау үшін cmake утилитасына «--toolchain > опциясы қосылды.
  • Терминалда көрсетілетін хабарлардың түрлері бөлектелген.
  • Fujitsu компиляторына қолдау қосылды.
  • «Foreach()» пәрмені цикл айнымалыларының цикл ішінде оқшаулануын қамтамасыз етеді.

Сонымен қатар, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME және GTK сияқты жобаларды құру үшін қолданылатын Meson 0.59 құрастыру жүйесінің шығарылымын атап өтуге болады. Meson коды Python тілінде жазылған және Apache 2.0 лицензиясы бойынша лицензияланған. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS және Windows жүйелерінде GCC, Clang, Visual Studio және басқа компиляторлар арқылы кросс компиляция мен құруды қолдайды. C, C++, Fortran, Java және Rust сияқты әртүрлі бағдарламалау тілдерінде жобаларды құруға болады. Жасау кезінде жасау утилитасының орнына әдепкі бойынша Ninja құралдар жинағы пайдаланылады, бірақ xcode және VisualStudio сияқты басқа серверлерді де пайдалануға болады.

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

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

  • Cython тіліне қолдау қосылды (C кодымен интеграцияны жеңілдетуге бағытталған Python-ның жетілдірілген нұсқасы).
  • pkgconfig ішіндегі айнымалы мәндерді "\" таңбасы бар бос орындардан шықпай анықтау үшін "unescaped_variables" және "unescaped_uninstalled_variables" кілт сөздері қосылды.
  • wrc (Wine Resource Compiler) үшін қосылған қолдау.
  • Visual Studio 2012 және Visual Studio 2013 үшін жобаларды жасау мүмкіндігі іске асырылды.
  • Барлық ішкі жобаға қатысты пәрмендер енді əдепкі бойынша əр ішкі жобаны параллельді іске қосады. Параллель процестердің саны “--num-processes” параметрімен анықталады.

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

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