የሜሶን ግንባታ ስርዓት መልቀቂያ 1.0

እንደ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME እና GTK የመሳሰሉ ፕሮጀክቶችን ለመገንባት የሚያገለግል የሜሶን 1.0.0 የግንባታ ስርዓት መለቀቅ ታትሟል። የሜሶን ኮድ በፓይዘን የተፃፈ ሲሆን በApache 2.0 ፍቃድ ስር ነው።

የሜሶን ቁልፍ የልማት ግብ ከፍተኛ ፍጥነት ያለው የመገጣጠም ሂደት ከምቾት እና ከአጠቃቀም ቀላልነት ጋር ተዳምሮ ማቅረብ ነው። ከመሥራት ይልቅ ግንባታው የ Ninja Toolkitን በነባሪነት ይጠቀማል፣ ነገር ግን እንደ xcode እና VisualStudio ያሉ ሌሎች ደጋፊዎችን መጠቀም ይቻላል። ስርዓቱ አብሮ የተሰራ ባለ ብዙ ፕላትፎርም ጥገኝነት ተቆጣጣሪ አለው ይህም ለስርጭት ፓኬጆችን ለመስራት ሜሶንን ለመጠቀም ያስችላል። የመሰብሰቢያ ደንቦች የሚዘጋጁት በቀላል ጎራ-ተኮር ቋንቋ ነው፣ እነሱ በደንብ ሊነበቡ የሚችሉ እና ለተጠቃሚው ሊረዱት የሚችሉ ናቸው (በደራሲዎቹ ሀሳብ መሰረት ገንቢው ህጎችን በመፃፍ ቢያንስ ጊዜ ማሳለፍ አለበት)።

በሊኑክስ፣ ኢሉሞስ/ሶላሪስ፣ ፍሪቢኤስዲ፣ ኔትቢኤስዲ፣ ድራጎንፍሊ ቢኤስዲ፣ ሃይኩ፣ ማክሮስ እና ዊንዶውስ ጂሲሲ፣ ክላንግ፣ ቪዥዋል ስቱዲዮ እና ሌሎች ኮምፕሌተሮችን በመጠቀም ማጠናቀር እና መገንባት ይደገፋል። C፣ C++፣ Fortran፣ Java እና Rustን ጨምሮ በተለያዩ የፕሮግራም አወጣጥ ቋንቋዎች ፕሮጀክቶችን መገንባት ይቻላል። ከመጨረሻው ግንባታ በኋላ ከተደረጉ ለውጦች ጋር በቀጥታ የሚዛመዱ አካላት ብቻ የሚገነቡበት የመጨመሪያ ግንባታ ሁነታ ይደገፋል። ሜሶን ሊደገሙ የሚችሉ ግንባታዎችን ለማመንጨት ሊያገለግል ይችላል፣ግንባቱን በተለያዩ አካባቢዎች ማካሄድ ሙሉ ለሙሉ ተመሳሳይ ፈጻሚዎች ያስከትላል።

የሜሶን 1.0 ዋና ፈጠራዎች፡-

  • በሩስት ቋንቋ የፕሮጀክቶች ግንባታ ሞጁል የተረጋጋ እንደሆነ ታውጇል። ይህ ሞጁል በሩስት ውስጥ የተፃፉ ክፍሎችን ለመገንባት በሜሳ ፕሮጀክት ውስጥ ጥቅም ላይ ይውላል.
  • በአብዛኛዎቹ የማጠናቀቂያ ፍተሻ ተግባራት የተደገፈ፣ ቅድመ ቅጥያ አማራጩ ከሕብረቁምፊዎች ውጭ ድርድርን የመቆጣጠር ችሎታን ይተገብራል። ለምሳሌ፡ አሁን፡- cc.check_header ('GL/wglew.h'፣ ቅድመ ቅጥያ፡ ['#include) መግለጽ ትችላለህ። '፣'#ያካትቱ '])
  • የስራ ማውጫውን ለመሻር የሚያስችል አዲስ የ"--workdir" ነጋሪ እሴት ታክሏል። ለምሳሌ, ከስራ ማውጫው ይልቅ የአሁኑን ማውጫ ለመጠቀም, ማሄድ ይችላሉ: meson devenv -C builddir --workdir .
  • አዲስ ኦፕሬተሮች "በ" እና "ያልገቡት" በሕብረቁምፊ ውስጥ የንዑስ ሕብረቁምፊ መከሰትን ለመወሰን ሐሳብ ቀርበዋል፣ ይህም ቀደም ሲል በድርድር ወይም መዝገበ ቃላት ውስጥ የአንድን ንጥረ ነገር መከሰት ቼክ ይመስላል። ለምሳሌ፡ fs = import('fs') በfs.read('somefile') ውስጥ ከሆነ 'ነገር' ከሆነ # True endif
  • የሁሉም የሚገኙትን የአቀናባሪ ማስጠንቀቂያዎች ውፅዓት ለማብራት "የማስጠንቀቂያ ደረጃ=ሁሉም ነገር" አማራጭ ታክሏል (በ clang እና MSVC አጠቃቀሞች -Weverything እና / Wall፣ እና በጂሲሲ ውስጥ የተለያዩ ማስጠንቀቂያዎች ተካትተዋል ፣ ከ -Weverything mode in clang ጋር በግምት ይዛመዳል)።
  • የ rust.bindgen ዘዴ በአቀነባባሪው መከናወን ያለባቸውን ወደ ጥገኝነት መንገዶች ለማለፍ የ "ጥገኛዎች" ክርክርን የማስኬድ ችሎታን ተግባራዊ ያደርጋል።
  • የጃቫ.generate_native_headers ተግባር ተቋርጦ ወደ java.native_headers ተቀይሯል ከሜሶን አጠቃላይ ተግባር የስያሜ ስልት ጋር ለማዛመድ።

ምንጭ: opennet.ru

አስተያየት ያክሉ