Meson build system release 1.0

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME සහ GTK වැනි ව්‍යාපෘති තැනීමට භාවිතා කරන Meson 1.0.0 ගොඩනැගීමේ පද්ධතියේ නිකුතුව ප්‍රකාශයට පත් කර ඇත. Meson කේතය Python වලින් ලියා ඇති අතර Apache 2.0 බලපත්‍රය යටතේ බලපත්‍ර ලබා ඇත.

Meson හි ප්‍රධාන සංවර්ධන ඉලක්කය වන්නේ පහසුව සහ භාවිතයේ පහසුව සමඟ ඒකාබද්ධව අධිවේගී එකලස් කිරීමේ ක්‍රියාවලියක් සැපයීමයි. සෑදීම වෙනුවට, ගොඩනැගීම පෙරනිමියෙන් 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.0 හි ප්‍රධාන නවෝත්පාදන:

  • රස්ට් භාෂාවෙන් ගොඩනැගිලි ව්‍යාපෘති සඳහා මොඩියුලයක් ස්ථාවර ලෙස ප්‍රකාශයට පත් කර ඇත. මෙම මොඩියුලය රස්ට් වලින් ලියා ඇති සංරචක තැනීම සඳහා Mesa ව්‍යාපෘතියේ භාවිතා වේ.
  • බොහෝ සම්පාදක පිරික්සුම් ශ්‍රිතවල සහය දක්වන උපසර්ග විකල්පය, නූල් වලට අමතරව අරා හැසිරවීමේ හැකියාව සපයයි. උදාහරණයක් ලෙස, ඔබට දැන් නියම කළ හැක: cc.check_header('GL/wglew.h', උපසර්ගය : ['#include ', '#ඇතුළත් '])
  • වැඩ කරන නාමාවලිය අභිබවා යාමට ඉඩ දීම සඳහා "--workdir" නව තර්කයක් එක් කරන ලදී. උදාහරණයක් ලෙස, වැඩ කරන බහලුම වෙනුවට වත්මන් නාමාවලිය භාවිතා කිරීමට, ඔබට ධාවනය කළ හැකිය: meson devenv -C builddir --workdir .
  • අරාවක හෝ ශබ්ද කෝෂයක මූලද්‍රව්‍යයක් සිදුවීම සඳහා කලින් පැවති චෙක්පතට සමානව, තන්තුවක උප තන්තුවක සිදුවීම තීරණය කිරීමට “in” සහ “not in” යන නව ක්‍රියාකරුවන් යෝජනා කර ඇත. උදාහරණයක් ලෙස: fs = import('fs') fs.read('somefile') හි 'යමක්' නම් # True endif
  • පවතින සියලුම සම්පාදක අනතුරු ඇඟවීම් වල ප්‍රතිදානය ක්‍රියාත්මක කරන “අවවාදය-මට්ටම=සියල්ල” විකල්පය එක් කරන ලදී (clang සහ MSVC එය භාවිතා කරන්නේ -Weverything සහ /Wall, සහ GCC අනතුරු ඇඟවීම් වෙන වෙනම ඇතුළත් කර ඇත, දළ වශයෙන් -Weverything ට අනුරූප වේ. clang හි මාදිලිය).
  • rust.bindgen ක්‍රමය සම්පාදකයා විසින් සැකසිය යුතු පරායත්තතා වෙත ගමන් කිරීමට "පරාධීනතා" තර්කය හැසිරවීමේ හැකියාව ක්‍රියාත්මක කරයි.
  • java.generate_native_headers ශ්‍රිතය අත්හරින ලද අතර Meson හි පොදු ශ්‍රිත නාමකරණ විලාසයට අනුකූල වීම සඳහා java.native_headers ලෙස නැවත නම් කර ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න