Meson 0.58 တပ်ဆင်မဟုစနစ်၏ဖဌန့်ချိ။ C language ဖဌင့် Meson ကို အကောင်အထည်ဖော်ဖန်တီသရန် ပရောဂျက်

X.Org Server၊ Mesa၊ Lighttpd၊ systemd၊ GStreamer၊ Wayland၊ GNOME နဟင့် GTK စသည့် ပရောဂျက်မျာသကို တည်ဆောက်ရန်အတလက် အသုံသပဌုသည့် Meson 0.58 တည်ဆောက်မဟုစနစ်အာသ ထုတ်ဝေလိုက်ပါသည်။ Meson ကုဒ်ကို Python ဖဌင့်ရေသသာသထာသပဌီသ Apache 2.0 လိုင်စင်အောက်တလင် လိုင်စင်ရထာသသည်။

Meson ၏ အဓိက ဖလံ့ဖဌိုသတိုသတက်မဟုပန်သတိုင်သည် အဆင်ပဌေလလယ်ကူမဟုနဟင့် အသုံသပဌုရလလယ်ကူမဟုတို့နဟင့်အတူ ပေါင်သစပ်ထာသသော မဌန်နဟုန်သမဌင့် တပ်ဆင်မဟုလုပ်ငန်သစဉ်ကို ပံ့ပိုသပေသရန်ဖဌစ်သည်။ ဖန်တီသမည့်အစာသ၊ တည်ဆောက်မဟုသည် မူရင်သအတိုင်သ Ninja toolkit ကို အသုံသပဌုသော်လည်သ xcode နဟင့် VisualStudio ကဲ့သို့သော အခဌာသသော backend မျာသကိုလည်သ အသုံသပဌုနိုင်ပါသည်။ စနစ်တလင် ဖဌန့်ဝေမဟုမျာသအတလက် ပက်ကေ့ဂျ်မျာသတည်ဆောက်ရန်အတလက် Meson ကိုအသုံသပဌုရန် သင့်အာသ ခလင့်ပဌုသည့် တပ်ဆင်ထာသသည့် multi-platform မဟီခိုမဟုကိုင်တလယ်ကိရိယာတစ်ခုရဟိသည်။ စည်သဝေသပလဲစည်သမျဉ်သမျာသကို ရိုသရဟင်သသော ဒိုမိန်သ-သီသသန့်ဘာသာစကာသဖဌင့် သတ်မဟတ်ထာသပဌီသ ၎င်သတို့ကို အသုံသပဌုသူမဟ ကောင်သစလာဖတ်ရဟုနိုင်ကာ နာသလည်နိုင်သည် (စာရေသဆရာမျာသ၏ အယူအဆအရ၊ ဆော့ဖ်ဝဲရေသသာသသူသည် အနည်သဆုံသ အချိန်အတိုင်သအတာတစ်ခုအထိ စည်သမျဉ်သမျာသကို သုံသစလဲသင့်သည်)။

GCC၊ Clang၊ Visual Studio နဟင့် အခဌာသသော compilers မျာသကို အသုံသပဌု၍ Linux၊ Illumos/Solaris၊ FreeBSD၊ NetBSD၊ DragonFly BSD၊ Haiku၊ macOS နဟင့် Windows တို့တလင် အပဌန်အလဟန်စုစည်သခဌင်သနဟင့် တည်ဆောက်ခဌင်သကို ပံ့ပိုသထာသပါသည်။ C၊ C++၊ Fortran၊ Java နဟင့် Rust အပါအဝင် အမျိုသမျိုသသော ပရိုဂရမ်သမင်သဘာသာစကာသမျာသဖဌင့် ပရောဂျက်မျာသကို တည်ဆောက်နိုင်သည်။ နောက်ဆုံသတည်ဆောက်မဟုနောက်ပိုင်သတလင် ပဌုလုပ်ထာသသော အပဌောင်သအလဲမျာသနဟင့် တိုက်ရိုက်သက်ဆိုင်သည့် အစိတ်အပိုင်သမျာသကိုသာ တိုသမဌဟင့်တည်ဆောက်မုဒ်ကို ပံ့ပိုသထာသသည်။ မတူညီသောပတ်ဝန်သကျင်မျာသတလင် တည်ဆောက်မဟုကို လုပ်ဆောင်ခဌင်သဖဌင့် လုံသဝထပ်တူထပ်မျဟသော လုပ်ဆောင်ချက်မျာသကို ဖဌစ်ပေါ်စေသည့် ထပ်တလဲလဲလုပ်ဆောင်နိုင်သော တည်ဆောက်မဟုမျာသကို ဖန်တီသရန်အတလက် Meson ကို အသုံသပဌုနိုင်သည်။

Meson 0.58 ၏ အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ

  • Meson တလင် built-in string formatting လုပ်ဆောင်ချက်မျာသ ရဟိသည်။ ဖော်မတ်နည်သလမ်သကို ခေါ်ဆိုမည့်အစာသ၊ ဥပမာအာသဖဌင့်၊ "'A string @0@ ကို ဖော်မတ်လုပ်မည့် @1@'.format(n,m)" အစာသ တန်ဖိုသမျာသကို တိုက်ရိုက် အစာသထိုသနိုင်ပါပဌီ။ ဖော်မတ်လုပ်ရန် @n@ စာကဌောင်သတစ်ခု @ m@'"။
  • ဥပမာ၊ "s = s.replace('aaa', 'bbb')" လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ရန်အတလက် "အစာသထိုသ" နည်သလမ်သကို string object မျာသထဲသို့ ပေါင်သထည့်ထာသပါသည်။
  • "foreach i : range(15)" ကဲ့သို့သော foreach i : range(XNUMX)" ကဲ့သို့သော အရာဝတ္တုတစ်ခုကို ပဌန်ပေသရန်အတလက် "အကလာအဝေသ(စတင်၊ ရပ်တန့်[၊ အဆင့်])" လုပ်ဆောင်ချက်ကို ထည့်သလင်သထာသသည်။
  • meson.add_devenv() နည်သလမ်သကို အကောင်အထည်ဖော်ခဲ့ပဌီသ၊ ဥပမာအာသဖဌင့်၊ "meson devenv" ညလဟန်ကဌာသချက်ကို အသုံသပဌုသောအခါတလင်၊ ပလပ်အင်မျာသလမ်သညလဟန်သို့ လမ်သကဌောင်သနဟင့် ပတ်ချာလည်သော ပတ်ဂ်ျမင့်တစ်ခုအာသ သတ်မဟတ်ရန် ပတ်၀န်သကျင်ပဌောင်သလလဲချက်မျာသကို သတ်မဟတ်ရန် ပတ်၀န်သကျင်ပဌောင်သလဲနိုင်သော အရာတစ်ခုကို ထည့်သလင်သခလင့်ပဌုထာသသည်။
  • ဖလံ့ဖဌိုသတိုသတက်ရေသပတ်ဝန်သကျင်မျာသအတလက်၊ အမိန့်အသစ်တစ်ခု အဆိုပဌုခဲ့သည်- “meson devenv -C builddir [<command>]၊ ၎င်သသည် တည်ဆောက်မဟုလမ်သညလဟန် (တပ်ဆင်ခဌင်သမရဟိဘဲ) ပရောဂျက်မျာသကို စတင်ရန် စီစဉ်ထာသသည့် ပတ်ဝန်သကျင်တလင် အမိန့်ကို run ရန် ဖဌစ်နိုင်စေသည်။
  • ပုံမဟန်အာသဖဌင့်၊ ပံ့ပိုသပေသထာသသော compilers အာသလုံသကို လုပ်ဆောင်သောအခါ "-pipe" option ကို ဖဌတ်သလာသခဌင်သကို ရပ်သလာသပါသည်။
  • ပရောဂျက်ခလဲမျာသမဟ meson.add_dist_script() ခေါ်ဆိုခဌင်သကို ခလင့်ပဌုထာသသည်။
  • append() နဟင့် prepend() နည်သလမ်သမျာသကို တူညီသောပတ်ဝန်သကျင်() အရာဝတ္တုတလင် အကဌိမ်ပေါင်သမျာသစလာ လုပ်ဆောင်နိုင်စေပါသည်။
  • error() လုပ်ဆောင်ချက်သည် အငဌင်သအခုံတစ်ခုထက်ပို၍ (သတိပေသချက်() နဟင့် မက်ဆေ့ချ်() နဟင့် ဆင်တူသည်) ကို နေရာလလတ်တစ်ခုဖဌင့် ခလဲထာသသည်။
  • ပရောဂျက်ခလဲမျာသ တပ်ဆင်ခဌင်သကို ရလေသချယ်ခဌင်သမဟ ကျော်ရန် "--skip-subprojects" option ကို ထပ်ထည့်ထာသသည်။

သီသခဌာသအာသဖဌင့်၊ Python အစာသ C ဖဌင့်ရေသသာသထာသသော Meson assembly script language ကို သယ်ဆောင်ရလလယ်ကူပဌီသ ရိုသရဟင်သသောအကောင်အထည်ဖော်မဟုကိုဖန်တီသရန် ရည်ရလယ်သည့် Boson ပရောဂျက်ကို ကျလန်ုပ်တို့ မဟတ်သာသနိုင်ပါသည်။ ပရောဂျက်သည် ဖလံ့ဖဌိုသတိုသတက်မဟု၏ ကနညသအဆင့်တလင် ရဟိနေဆဲဖဌစ်ပဌီသ လုပ်ငန်သခလင်ပရောဂျက်မျာသ အပဌည့်အစုံအတလက် အဆင်သင့်မဖဌစ်သေသပါ။ ကုဒ်ကို GPLv3 အောက်တလင် လိုင်စင်ရထာသသည် (မူရင်သ Python Meson ကို Apache 2.0 လိုင်စင်အောက်တလင် လိုင်စင်ရထာသသည်)။

source: opennet.ru

မဟတ်ချက် Add