سیستم ساخت مزون نسخه 1.1

انتشار سیستم ساخت Meson 1.1.0 منتشر شده است که برای ساخت پروژه هایی مانند X.Org Server، Mesa، Lighttpd، systemd، GStreamer، Wayland، GNOME و GTK استفاده می شود. کد مزون به زبان پایتون نوشته شده و تحت مجوز آپاچی 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 1.1:

  • یک آرگومان جدید "objects:" به declare_dependency() اضافه شده است تا اشیاء را مستقیماً به فایل های اجرایی به عنوان وابستگی های داخلی که نیازی به link_who ندارند متصل کند.
  • دستور "meson devenv --dump" این توانایی اختیاری را دارد که به جای خروجی دادن به جریان خروجی استاندارد، فایلی را برای نوشتن متغیرهای محیطی تعیین کند.
  • متدهای FeatureOption.enable_if و FeatureOption.disable_if را اضافه کرد تا ایجاد شرطی در آماده سازی برای انتقال پارامترها به تابع ()dependency را آسان‌تر کند. opt = get_option ('feature').disable_if (not foo, error_message : 'نمی توان ویژگی را هنگامی که foo نیز فعال نیست فعال کرد') dep = وابستگی ('foo'، مورد نیاز : opt)
  • مجاز است که اشیاء تولید شده را از میان آرگومان های "اشیاء:" منتقل کند.
  • تابع پروژه از نصب فایل هایی با اطلاعات مربوط به مجوزهای پروژه پشتیبانی می کند.
  • اجرای "sudo meson install" بازنشانی امتیاز را در حین بازسازی برای پلتفرم های هدف تضمین می کند.
  • دستور "meson install" این امکان را فراهم می کند که یک هندلر جداگانه برای دریافت مجوزهای ریشه تعیین کنید (به عنوان مثال، می توانید polkit، sudo، opendoas یا $MESON_ROOT_CMD را انتخاب کنید). اجرای "meson install" در حالت غیر تعاملی دیگر تلاشی برای افزایش امتیازات نمی کند.
  • پشتیبانی برای خواندن گزینه‌ها از فایل meson.options به جای meson_options.txt اضافه شد.
  • ارائه هدایت مجدد به stderr از خروجی اطلاعات در مورد پیشرفت درون نگری.
  • یک باطن جدید "none" (--backend=none) برای ایجاد پروژه هایی که فقط قوانین نصب دارند و قوانین ساخت ندارند اضافه شده است.
  • یک وابستگی جدید pybind11 اضافه شده است تا وابستگی ('pybind11') با pkg-config و cmake بدون استفاده از اسکریپت pybind11-config کار کند.
  • گزینه های "--reconfigure" و "--wipe" (meson setup --reconfigure builddir and meson setup --wipe builddir ) با یک builddir خالی مجاز هستند.
  • meson.add_install_script() پشتیبانی از کلمه کلیدی dry_run را اضافه کرد که به شما امکان می دهد اسکریپت های نصب خود را هنگام فراخوانی "meson install --dry-run" اجرا کنید.

منبع: opennet.ru

اضافه کردن نظر