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

жарияланды жүйенің шығарылымын құрастыру Мезон 0.51, ол 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, macOS және Windows жүйелерінде кросс-компиляцияға және құруға қолдау көрсетіледі. C, C++, Fortran, Java және Rust сияқты әртүрлі бағдарламалау тілдерінде жобаларды құруға болады. Соңғы құрастырудан кейін енгізілген өзгерістерге тікелей қатысты құрамдас бөліктер ғана қайта құрылатын қосымша құрастыру режиміне қолдау көрсетіледі. Meson қайталанатын құрылымдарды генерациялау үшін пайдаланылуы мүмкін, онда құрастыруды әртүрлі орталарда іске қосу толығымен бірдей орындалатын файлдарды генерациялауға әкеледі.

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

  • CMake құрастыру сценарийлерін пайдаланатын бар жобалардың мөлдір құрылысына қолдау қосылды. Meson енді стандартты ішкі жобаларға ұқсас (соның ішінде CMake ішкі жобаларын ішкі жобалар каталогында орналастыруға болады) CMake модулін пайдаланып қарапайым ішкі жобаларды (бір кітапханалар сияқты) тікелей құра алады;
  • Барлық пайдаланылған компиляторлар үшін алдын ала тестілеу қарапайым сынақ файлдарын құрастыру және орындау (санитет тексеру) арқылы енгізілген, ол кросс-компиляторлар үшін пайдаланушы белгілеген жалаушаларды тестілеумен шектелмейді (бұдан былай ағымдағы платформаға арналған компиляторлар да тексеріледі) .
  • Опция алдында платформа префиксін көрсету арқылы байланыстыру арқылы айқас компиляция кезінде пайдаланылатын пәрмен жолы опцияларын анықтау мүмкіндігі қосылды. Бұрын пәрмен жолы опциялары тек жергілікті құрылымдарды қамтыды және айқас құрастыру үшін көрсетілмеді. Пәрмен жолы опциялары енді жергілікті және айқас құрастырулардың бірдей нәтижелер беретінін қамтамасыз ете отырып, жергілікті түрде құрастырып жатқаныңызға немесе айқас құрастырғаныңызға қарамастан қолданылады;
  • Бірнеше кросс-файлдарды тізімдеу үшін пәрмен жолында «--cross-file» жалауын бірнеше рет көрсету мүмкіндігі қосылды;
  • Windows платформасына (ICL.EXE және ifort) арналған ICL компиляторына (Intel C/C++ Compiler) қолдау қосылды;
  • CPU Xtensa (xt-xcc, xt-xc++, xt-nm) үшін бастапқы құралдар жинағы қосылды;
  • «Тәуелділік» нысанына «get_variable» әдісі қосылды, ол ағымдағы тәуелділіктің түрін ескермей айнымалының мәнін алуға мүмкіндік береді (мысалы, dep.get_variable(pkg-config : 'var- аты', cmake : 'COP_VAR_NAME));
  • Сілтемені шақыру кезінде пайдаланылатын тілді нақты көрсету үшін жаңа мақсатты жинақ опциялары аргументі қосылды, "link_language". Мысалы, негізгі Fortran бағдарламасы C/C++ кодын шақыра алады, ол Fortran сілтемесін пайдалану қажет болғанда автоматты түрде C/C++ таңдайды;
  • CPPFLAGS препроцессорлық жалаушаларын өңдеу өзгертілді. Meson бұрын CPPFLAGS және тілге арналған компиляция жалауларын (CFLAGS, CXXFLAGS) бөлек сақтаған болса, енді олар бір-бірінен ажырамай өңделеді және CPPFLAGS тізімінде тізімделген жалаулар оларды қолдайтын тілдер үшін компиляция жалауларының басқа көзі ретінде пайдаланылады;
  • custom_target және custom_target[i] шығысын енді slink_with және link_whole әрекеттерінде аргументтер ретінде пайдалануға болады;
  • Генераторлар енді «тәуелді» опциясын пайдаланып қосымша тәуелділіктерді көрсету мүмкіндігіне ие (мысалы, генератор(program_runner, шығыс: [‘@)[электрондық пошта қорғалған]'], тәуелді: exe));
  • Іздеуге статикалық байланысқан кітапханаларды ғана қосуға рұқсат ету үшін find_library үшін статикалық опция қосылды;
  • python.find_installation үшін Python бағдарламасының нақты нұсқасы үшін берілген Python модулінің болуын анықтау мүмкіндігі қосылды;
  • kconfig файлдарын талдау үшін unstable-kconfig жаңа модулі қосылды;
  • Аргументтері бар пәрменді қабылдайтын және оны барлық ішкі жоба каталогтарында іске қосатын «subprojects foreach» жаңа пәрмені қосылды;

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

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