Meson куруу системасынын релизи 1.3

Meson 1.3.0 куруу системасы чыгарылды, ал 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 кайталануучу түзүлүштөрдү түзүү үчүн колдонулушу мүмкүн, мында түзүүнү ар кандай чөйрөдө иштетүү толугу менен бирдей аткарылуучу файлдарды пайда кылат.

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

  • Compiler.compiles(), compiler.links() жана compiler.run() компиляторду текшерүү ыкмаларына “werror: true” опциясы кошулду, ал компилятордун эскертүүлөрүн ката катары карайт (код эскертүүсүз курулганын текшерүү үчүн колдонсо болот) ).
  • Препроцессор тарабынан символдун аныктамасын текшерүү үчүн has_define ыкмасы кошулду.
  • macro_name параметри configure_file() функциясына кошулду, ал "#include" аркылуу кош туташуулар үчүн макрокоргоону кошот ("коргоочуларды камтуу"), Си тилиндеги макростордун стилинде иштелип чыккан (динамикалык конфигурациялоо файлдарын түзүүнү жөнөкөйлөтүү. макрос аттары).
  • configure_file() - JSON ("output_format: json") жаңы чыгаруу форматы кошулду.
  • c_std жана cpp_std параметрлерине баалуулуктардын тизмесин колдонуу мүмкүнчүлүгү кошулду (мисалы, "default_options: 'c_std=gnu11,c11′').
  • Файлдарды иштетүү үчүн CustomTarget колдонгон модулдарда ниндзя утилитасы чыгарган билдирүүлөрдү ыңгайлаштыруу мүмкүнчүлүгү кошулган.
  • build_target "jar" эскирген жана анын ордуна "jar()" чалуу сунушталат.
  • 'env' параметри генератор киргизүүнү иштете турган чөйрө өзгөрмөсүн коюу үчүн generator.process() ыкмасына кошулду.
  • Аткарылуучу файлдар менен байланышкан куруу максаттуу аталыштарын көрсөтүүдө, "аткалуучу('foo', 'main.c', name_suffix: 'bar')" сыяктуу суффикстерге бир эле каталогдо кошумча аткарылуучу файлдарды түзүүгө уруксат берилет.
  • "vs_module_defs" параметри shared_module() функциясына өткөрүлүп берилген функциялардын тизмесин аныктаган def файлын колдонуу үчүн exectuable() функциясына кошулду.
  • Кайтарылган чакан долбоор үчүн демейки параметрлерди коюу үчүн find_program() функциясына "default_options" параметри кошулду.
  • Кошулган fs.relative_to() ыкмасы, ал биринчи аргумент үчүн экинчиге салыштырмалуу жолду кайтарат, эгерде биринчи жол бар болсо. Мисалы, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Төмөнкү_symlinks параметри install_data(), install_headers() жана install_subdir() функцияларына кошулду; орнотулганда символдук шилтемелер аткарылат.
  • int.to_string() ыкмасына сапты алдыңкы нөлдөр менен акырындык менен толтуруу үчүн "толтуруу" параметри кошулду. Мисалы, n=3 үчүн message(n.to_string(fill: 4)) чакырылышы "004" сабын жаратат.
  • Clang-tidy утилитасын "-fix" желекчеси менен иштетүүнү белгилеген жаңы максат, clang-tidy-fix кошулду.
  • Ассамблеянын максаттуу суффикси (TARGET_SUFFIX) көрсөтүү мүмкүнчүлүгү ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) компиляция буйругуна кошулду.
  • Топтомдун кэшине жолду жокко чыгаруу үчүн MESON_PACKAGE_CACHE_DIR чөйрө өзгөрмөсү кошулду, мисалы, бир нече долбоорлордо жалпы кэшти колдонууга мүмкүндүк берет.
  • Туруктуу кэшти тазалоо үчүн "meson setup --clearcache" буйругу кошулду.
  • "Талап кылынган" ачкыч сөзүн колдоо "has_*" компиляторду текшерүү ыкмаларынын бардыгына кошулду, мисалы, "assert(cc.has_function('some_function'))" ордуна "cc.has_function('some_function') белгилей аласыз. , талап кылынат: true)”.
  • Жаңы ачкыч сөз, rust_abi, shared_library(), static_library(), library() жана shared_module() функцияларына кошулду, алар эскирген rust_crate_type ордуна колдонулушу керек.

Source: opennet.ru

Комментарий кошуу