ការចេញផ្សាយប្រព័ន្ធសាងសង់ Meson 0.52

បោះពុម្ពផ្សាយ ការចេញផ្សាយប្រព័ន្ធ Meson 0.52ដែលត្រូវបានប្រើដើម្បីសាងសង់គម្រោងដូចជា X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME និង GTK+។ កូដ Meson ត្រូវបានសរសេរជា Python និង ផ្គត់ផ្គង់ មានអាជ្ញាប័ណ្ណក្រោម Apache 2.0 ។

គោលដៅសំខាន់នៃការអភិវឌ្ឍន៍ Meson គឺដើម្បីផ្តល់នូវល្បឿនខ្ពស់នៃដំណើរការដំឡើងរួមជាមួយនឹងភាពងាយស្រួល និងភាពងាយស្រួលនៃការប្រើប្រាស់។ ជំនួសឱ្យ make utility នោះ default build ប្រើ toolkit និនចាប៉ុន្តែវាក៏អាចប្រើ backends ផ្សេងទៀតដូចជា xcode និង VisualStudio ផងដែរ។ ប្រព័ន្ធនេះមានឧបករណ៍ដោះស្រាយភាពអាស្រ័យពហុវេទិកាដែលភ្ជាប់មកជាមួយដែលអនុញ្ញាតឱ្យអ្នកប្រើ Meson ដើម្បីបង្កើតកញ្ចប់សម្រាប់ការចែកចាយ។ ច្បាប់នៃសភាត្រូវបានបញ្ជាក់ជាភាសាជាក់លាក់ជាក់លាក់នៃដែនសាមញ្ញ អាចអានបាន និងអាចយល់បានសម្រាប់អ្នកប្រើប្រាស់ (តាមការចង់បានដោយអ្នកនិពន្ធ អ្នកអភិវឌ្ឍន៍គួរតែចំណាយពេលអប្បបរមានៃច្បាប់ក្នុងការសរសេរ)។

គាំទ្រ cross-compile និងបង្កើតនៅលើ Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS និង Windows ដោយប្រើ GCC, Clang, Visual Studio និងកម្មវិធីចងក្រងផ្សេងទៀត។ វាអាចបង្កើតគម្រោងជាភាសាសរសេរកម្មវិធីផ្សេងៗ រួមមាន C, C++, Fortran, Java និង Rust ។ របៀប​បង្កើត​បន្ថែម​ត្រូវ​បាន​គាំទ្រ ដែល​ក្នុង​នោះ​មាន​តែ​សមាសធាតុ​ដែល​ទាក់ទង​នឹង​ការ​ផ្លាស់​ប្តូរ​ដោយ​ផ្ទាល់​ប៉ុណ្ណោះ​ចាប់តាំងពី​ការ​បង្កើត​ចុងក្រោយ​ត្រូវ​បាន​បង្កើត​ឡើង​វិញ។ Meson អាច​ត្រូវ​បាន​ប្រើ​ដើម្បី​បង្កើត​ការ​បង្កើត​ដែល​អាច​ធ្វើ​បាន​ដដែលៗ ដែល​ក្នុង​នោះ​ការ​ដំណើរការ​ build ក្នុង​បរិស្ថាន​ផ្សេង​គ្នា​នាំ​ឱ្យ​បង្កើត​ឯកសារ​ដែល​អាច​ប្រតិបត្តិ​បាន​ដូចគ្នា​ទាំងស្រុង។

សំខាន់ ការច្នៃប្រឌិត Meson 0.52៖

  • បានបន្ថែមការគាំទ្រពិសោធន៍សម្រាប់ Webassembly ដោយប្រើ Emscripten ជាអ្នកចងក្រង។
  • ការគាំទ្រសម្រាប់វេទិកា Illumos និង Solaris ត្រូវបានធ្វើឱ្យប្រសើរឡើងយ៉ាងខ្លាំង និងនាំយកមកនូវលក្ខខណ្ឌការងារ។
  • ធានាថាស្គ្រីបអន្តរជាតិដែលមានមូលដ្ឋានលើ gettext មិនត្រូវបានអើពើ ប្រសិនបើប្រព័ន្ធមិនបានដំឡើងប្រអប់ឧបករណ៍ gettext (ពីមុន កំហុសត្រូវបានបង្ហាញនៅពេលប្រើម៉ូឌុល i18n នៅលើប្រព័ន្ធដែលមិនមាន gettext);
  • ធ្វើឱ្យប្រសើរឡើងនូវការគាំទ្រសម្រាប់បណ្ណាល័យឋិតិវន្ត។ បញ្ហាជាច្រើននៅពេលប្រើបណ្ណាល័យឋិតិវន្តដែលមិនបានដំឡើងត្រូវបានដោះស្រាយ។
  • បានបន្ថែមសមត្ថភាពក្នុងការប្រើវចនានុក្រមដើម្បីកំណត់អថេរបរិស្ថាន។ នៅពេលហៅបរិស្ថាន() ធាតុទីមួយអាចត្រូវបានបញ្ជាក់ជាវចនានុក្រមដែលអថេរបរិស្ថានត្រូវបានកំណត់ក្នុងទម្រង់សោ/តម្លៃ។ អថេរទាំងនេះនឹងត្រូវបានផ្ទេរទៅបរិស្ថាន_វត្ថុដូចជាប្រសិនបើពួកវាត្រូវបានកំណត់ជាលក្ខណៈបុគ្គលតាមរយៈវិធី set()។ ឥឡូវនេះវចនានុក្រមក៏អាចត្រូវបានបញ្ជូនទៅមុខងារផ្សេងៗដែលគាំទ្រអាគុយម៉ង់ "env" ។
  • បានបន្ថែមមុខងារ "runtarget alias_target(target_name, dep1, ...)" ដែលបង្កើតគោលដៅស្ថាបនាកម្រិតទីមួយថ្មី ដែលអាចហៅបានជាមួយនឹងផ្នែកខាងក្រោយស្ថាបនាដែលបានជ្រើសរើស (ឧ. "ninja target_name")។ គោលដៅស្ថាបនានេះមិនដំណើរការពាក្យបញ្ជាណាមួយទេ ប៉ុន្តែធានាថាភាពអាស្រ័យទាំងអស់ត្រូវបានបង្កើតឡើង។
  • បានបើកដំណើរការការកំណត់ដោយស្វ័យប្រវត្តិនៃបរិស្ថាន PKG_CONFIG_SYSROOT_DIR ដែលប្រែប្រួលក្នុងអំឡុងពេលការចងក្រងឆ្លង ប្រសិនបើមានការកំណត់ sys_root នៅក្នុងផ្នែក “[properties]”។
  • បានបន្ថែមជម្រើស "--gdb-path" ដើម្បីកំណត់ផ្លូវទៅកាន់ឧបករណ៍បំបាត់កំហុស GDB នៅពេលបញ្ជាក់ជម្រើស "--gdb testname" ដើម្បីដំណើរការ GDB ជាមួយស្គ្រីបសាកល្បងដែលបានបញ្ជាក់។
  • បានបន្ថែមការរកឃើញដោយស្វ័យប្រវត្តិនៃគោលដៅបង្កើត clang-tidy ដើម្បីដំណើរការ linter នេះជាមួយនឹងឯកសារប្រភពទាំងអស់។ គោលដៅត្រូវបានបង្កើតឡើង ប្រសិនបើ clang-tidy មាននៅក្នុងប្រព័ន្ធ ហើយឯកសារ “.clang-tidy” (ឬ “_clang-tidy”) ត្រូវបានកំណត់នៅក្នុង root គម្រោង។
  • បានបន្ថែមភាពអាស្រ័យ ('ប្លុក') សម្រាប់ប្រើនៅក្នុងផ្នែកបន្ថែម Clang ប្លុក;
  • ទិដ្ឋភាព linker និង compiler ត្រូវបានបំបែកដោយអនុញ្ញាតឱ្យបន្សំផ្សេងគ្នានៃ compilers និង linkers ត្រូវបានប្រើ។
  • បានបន្ថែមវិធីសាស្រ្ត all_dependencies() ទៅ SourceSet objects បន្ថែមលើ all_sources() method;
  • នៅក្នុង run_project_tests.py ជម្រើស “--only” ត្រូវបានបន្ថែមទៅការធ្វើតេស្តជ្រើសរើសដោយជ្រើសរើស (ឧទាហរណ៍ “python run_project_tests.py —only fortran python3”);
  • ឥឡូវនេះមុខងារ find_program() មានលទ្ធភាពស្វែងរកតែកំណែដែលត្រូវការនៃកម្មវិធី (កំណែត្រូវបានកំណត់ដោយដំណើរការកម្មវិធីជាមួយនឹងជម្រើស "-version");
  • ដើម្បីគ្រប់គ្រងការនាំចេញនិមិត្តសញ្ញា ជម្រើស vs_module_defs ត្រូវបានបន្ថែមទៅមុខងារ shared_module() ស្រដៀងទៅនឹង shared_library();
  • ម៉ូឌុល kconfig ត្រូវបានពង្រីកដើម្បីគាំទ្រ configure_file() សម្រាប់បញ្ជាក់ឯកសារបញ្ចូល។
  • បានបន្ថែមសមត្ថភាពក្នុងការបញ្ជាក់ឯកសារបញ្ចូលច្រើនសម្រាប់ “command:” handlers ដើម្បី configure_file();
  • ពាក្យបញ្ជា "dist" សម្រាប់ការបង្កើតប័ណ្ណសារត្រូវបានផ្លាស់ទីទៅប្រភេទនៃពាក្យបញ្ជាកម្រិតទីមួយ (ពីមុនពាក្យបញ្ជាត្រូវបានចងភ្ជាប់ទៅនឹង Ninja) ។ បានបន្ថែមជម្រើស "--formats" ដើម្បីកំណត់ប្រភេទបណ្ណសារដែលត្រូវបង្កើត (ឧទាហរណ៍
    "meson dist -formats=xztar,zip") ។

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់