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

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

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

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

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

  • បានបន្ថែមជម្រើស “wrror: true” ទៅកាន់វិធីសាស្ត្រពិនិត្យអ្នកចងក្រង compiler.compiles(), compiler.links() និង compiler.run() ដែលចាត់ទុកការព្រមានពីអ្នកចងក្រងជាកំហុស (អាចប្រើដើម្បីពិនិត្យមើលថាកូដត្រូវបានបង្កើតដោយគ្មានការព្រមាន )
  • បានបន្ថែមវិធីសាស្ត្រ has_define ដើម្បីពិនិត្យមើលនិយមន័យនិមិត្តសញ្ញាដោយឧបករណ៍ដំណើរការមុន។
  • ប៉ារ៉ាម៉ែត្រ macro_name ត្រូវបានបន្ថែមទៅមុខងារ configure_file() ដោយបន្ថែមការការពារម៉ាក្រូសម្រាប់ការតភ្ជាប់ទ្វេរដងតាមរយៈ “#include” (“include guards”) ដែលរចនាតាមរចនាប័ទ្មម៉ាក្រូជាភាសា C (សម្រួលដល់ការបង្កើតឯកសារកំណត់រចនាសម្ព័ន្ធដោយថាមវន្ត។ ឈ្មោះម៉ាក្រូ) ។
  • ទ្រង់ទ្រាយលទ្ធផលថ្មីត្រូវបានបន្ថែមទៅ configure_file() - JSON ("output_format: json")។
  • បានបន្ថែមសមត្ថភាពក្នុងការប្រើបញ្ជីតម្លៃទៅប៉ារ៉ាម៉ែត្រ c_std និង cpp_std (ឧទាហរណ៍ “default_options: 'c_std=gnu11,c11′')។
  • នៅក្នុងម៉ូឌុលដែលប្រើ CustomTarget ដើម្បីដំណើរការឯកសារ សមត្ថភាពក្នុងការកំណត់លទ្ធផលសារតាមបំណងដោយឧបករណ៍ប្រើប្រាស់ Ninja ត្រូវបានបន្ថែម។
  • build_target "jar" ត្រូវបានបដិសេធ ហើយការហៅ "jar()" ត្រូវបានណែនាំជំនួសវិញ។
  • ប៉ារ៉ាម៉ែត្រ 'env' ត្រូវបានបន្ថែមទៅវិធីសាស្ត្រ generator.process() ដើម្បីកំណត់អថេរបរិស្ថានដែលម៉ាស៊ីនភ្លើងនឹងដំណើរការបញ្ចូល។
  • នៅពេលបញ្ជាក់ឈ្មោះគោលដៅសាងសង់ដែលភ្ជាប់ជាមួយការប្រតិបត្តិ បច្ច័យដូចជា "executable('foo', 'main.c', name_suffix: 'bar')" ត្រូវបានអនុញ្ញាតឱ្យបង្កើតការប្រតិបត្តិបន្ថែមនៅក្នុងថតដូចគ្នា។
  • បានបន្ថែមប៉ារ៉ាម៉ែត្រ "vs_module_defs" ទៅមុខងារ exectuable() ដើម្បីប្រើឯកសារ def ដែលកំណត់បញ្ជីមុខងារដែលបានបញ្ជូនទៅ shared_module() ។
  • បានបន្ថែមប៉ារ៉ាម៉ែត្រ 'default_options' ទៅមុខងារ find_program() ដើម្បីកំណត់ជម្រើសលំនាំដើមសម្រាប់គម្រោងរងជំនួស។
  • បានបន្ថែមវិធីសាស្ត្រ fs.relative_to() ដែលត្រឡប់ផ្លូវដែលទាក់ទងសម្រាប់អាគុយម៉ង់ទីមួយ ទាក់ទងទៅនឹងទីពីរ ប្រសិនបើផ្លូវទីមួយមាន។ ឧទាហរណ៍ "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')" ។
  • ប៉ារ៉ាម៉ែត្រខាងក្រោម _symlinks ត្រូវបានបន្ថែមទៅមុខងារ install_data(), install_headers() និង install_subdir() នៅពេលកំណត់ តំណភ្ជាប់និមិត្តសញ្ញាត្រូវបានអនុវត្តតាម។
  • ប៉ារ៉ាម៉ែត្រ "បំពេញ" ត្រូវបានបន្ថែមទៅវិធីសាស្ត្រ int.to_string() ដើម្បីបំពេញខ្សែអក្សរដោយលេខសូន្យនាំមុខ។ ឧទាហរណ៍ ការហៅសារ(n.to_string(fill: 3)) សម្រាប់ n=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_*" ទាំងអស់ ឧទាហរណ៍ ជំនួសឱ្យ "អះអាង(cc.has_function('some_function'))" ឥឡូវនេះអ្នកអាចបញ្ជាក់ "cc.has_function('some_function') ទាមទារ៖ ពិត)”។
  • ពាក្យគន្លឹះថ្មី rust_abi ត្រូវបានបន្ថែមទៅមុខងារ shared_library(), static_library(), library() និង shared_module() ដែលគួរតែត្រូវបានប្រើជំនួសឱ្យប្រភេទ rust_crate_type ដែលត្រូវបានបដិសេធ។

ប្រភព: opennet.ru

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