Meson build system release 1.3

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME සහ GTK වැනි ව්‍යාපෘති තැනීමට භාවිතා කරන Meson 1.3.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.3 හි ප්‍රධාන නවෝත්පාදන:

  • සම්පාදක අනතුරු ඇඟවීම් දෝෂ ලෙස සලකන compiler.compiles(), compiler.links() සහ compiler.run() යන compiler චෙක්පත් ක්‍රම වෙත “wrror: true” විකල්පය එක් කරන ලදී (අනතුරු ඇඟවීම් නොමැතිව කේතය ගොඩනගා ඇත්දැයි පරීක්ෂා කිරීමට භාවිතා කළ හැක. )
  • පෙර සකසනය මගින් සංකේත අර්ථ දැක්වීම පරීක්ෂා කිරීමට has_define ක්‍රමය එක් කරන ලදී.
  • macro_name පරාමිතිය configure_file() ශ්‍රිතයට එකතු කර ඇති අතර, C භාෂාවෙන් මැක්‍රෝ වල විලාසයෙන් නිර්මාණය කර ඇති "#include" ("guards" හරහා ද්විත්ව සම්බන්ධතා සඳහා මැක්‍රෝ ආරක්ෂාවක් එක් කර ඇත (ගතික ගොනු වින්‍යාස කිරීම සරල කිරීම. සාර්ව නම්).
  • 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() ක්‍රමයට එකතු කර ඇත්තේ උත්පාදක යන්ත්‍රය ආදානය සකසන පරිසර විචල්‍යය සැකසීමටය.
  • Executables සමඟ සම්බන්ධිත ගොඩනැගීමේ ඉලක්ක නාමයන් සඳහන් කරන විට, "executable('foo', 'main.c', name_suffix: 'bar')" වැනි උපසර්ග වලට එම නාමාවලියෙහිම අමතර ක්‍රියාත්මක කළ හැකි උත්පාදනය කිරීමට අවසර ලැබේ.
  • Shared_module() වෙත යවන ලද ශ්‍රිත ලැයිස්තුව නිර්වචනය කරන def ගොනුවක් භාවිතා කිරීමට exectuable() ශ්‍රිතයට “vs_module_defs” පරාමිතිය එක් කරන ලදී.
  • පසුබැසීම උප ව්‍යාපෘතිය සඳහා පෙරනිමි විකල්ප සැකසීමට find_program() ශ්‍රිතයට 'default_options' පරාමිතිය එක් කරන ලදී.
  • fs.relative_to() ක්‍රමය එකතු කරන ලදි, එය පළමු තර්කය සඳහා සාපේක්ෂ මාර්ගය ලබා දෙයි, දෙවැන්නට සාපේක්ෂව, පළමු මාර්ගය පවතී නම්. උදාහරණයක් ලෙස, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • පහත_symlinks පරාමිතිය install_data(), install_headers() සහ install_subdir() ශ්‍රිතවලට එක් කර ඇත; සැකසූ විට, සංකේතාත්මක සබැඳි අනුගමනය කරනු ලැබේ.
  • int.to_string() ක්‍රමයට තන්තුව ප්‍රමුඛ ශුන්‍ය වලින් වර්‍ගයෙන් පිරවීමට “පිරවීම” පරාමිතියක් එක් කර ඇත. උදාහරණයක් ලෙස, n=3 සඳහා පණිවිඩය(n.to_string(fill: 4)) ඇමතීමෙන් "004" තන්තුව නිපදවනු ඇත.
  • "-fix" ධජය සමඟ clang-tidy උපයෝගීතාව ධාවනය කිරීම නියම කරන, clang-tidy-fix නව ඉලක්කයක් එක් කරන ලදී.
  • එකලස් කිරීමේ ඉලක්කයේ ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) උපසර්ගය (TARGET_SUFFIX) සඳහන් කිරීමේ හැකියාව compile විධානයට එක් කර ඇත.
  • MESON_PACKAGE_CACHE_DIR පරිසර විචල්‍යයක් පැකේජ හැඹිලියට (උප ව්‍යාපෘති/පැකේජ හැඹිලි) මාර්ගය අභිබවා යාමට එක් කරන ලදී, උදාහරණයක් ලෙස, ව්‍යාපෘති කිහිපයක හවුල් හැඹිලියක් භාවිතා කිරීමට ඔබට ඉඩ සලසයි.
  • ස්ථීර හැඹිලිය ඉවත් කිරීමට "meson setup --clearcache" විධානය එක් කරන ලදී.
  • සියලුම “has_*” සම්පාදක පිරික්සුම් ක්‍රමවලට “අවශ්‍ය” මූල පදය සඳහා සහය එක් කර ඇත, උදාහරණයක් ලෙස, “assert(cc.has_function('some_function'))” වෙනුවට ඔබට දැන් “cc.has_function('some_function') සඳහන් කළ හැක. , අවශ්‍යයි: ඇත්ත)”.
  • නව මූල පදයක්, rust_abi, හවුල්_library(), static_library(), library(), සහ shared_module() ශ්‍රිතවලට එක් කර ඇත, එය අවලංගු rust_crate_type වෙනුවට භාවිතා කළ යුතුය.

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

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