میسن بلڈ سسٹم ریلیز 1.1

میسن 1.1.0 بلڈ سسٹم کی ریلیز شائع ہو چکی ہے، جو کہ X.Org Server، Mesa، Lighttpd، systemd، GStreamer، Wayland، GNOME اور GTK جیسے پروجیکٹس بنانے کے لیے استعمال ہوتی ہے۔ میسن کوڈ Python میں لکھا گیا ہے اور Apache 2.0 لائسنس کے تحت لائسنس یافتہ ہے۔

میسن کا کلیدی ترقیاتی ہدف سہولت اور استعمال میں آسانی کے ساتھ مل کر تیز رفتار اسمبلی کا عمل فراہم کرنا ہے۔ میک کے بجائے، بلڈ ڈیفالٹ کے طور پر ننجا ٹول کٹ کا استعمال کرتا ہے، لیکن دوسرے بیک اینڈ جیسے ایکس کوڈ اور ویژول اسٹوڈیو بھی استعمال کیے جاسکتے ہیں۔ سسٹم میں ایک بلٹ ان ملٹی پلیٹ فارم انحصار ہینڈلر ہے جو آپ کو تقسیم کے لیے پیکجز بنانے کے لیے میسن کو استعمال کرنے کی اجازت دیتا ہے۔ اسمبلی کے قواعد ایک آسان ڈومین کے لیے مخصوص زبان میں مرتب کیے گئے ہیں، وہ صارف کے لیے اچھی طرح سے پڑھنے اور قابل فہم ہیں (مصنفین کے خیال کے مطابق، ڈویلپر کو قواعد لکھنے میں کم از کم وقت گزارنا چاہیے)۔

لینکس، Illumos/Solaris، FreeBSD، NetBSD، DragonFly BSD، Haiku، macOS اور Windows پر GCC، Clang، Visual Studio اور دیگر کمپائلرز کا استعمال کرتے ہوئے کراس کمپائلنگ اور بلڈنگ سپورٹ کی جاتی ہے۔ مختلف پروگرامنگ زبانوں میں پروجیکٹ بنانا ممکن ہے، بشمول C، C++، Fortran، Java اور Rust۔ ایک انکریمنٹل بلڈ موڈ سپورٹ کیا جاتا ہے، جس میں صرف ان اجزاء کو دوبارہ بنایا جاتا ہے جو آخری تعمیر کے بعد کی گئی تبدیلیوں سے براہ راست تعلق رکھتے ہیں۔ میسن کو دوبارہ قابل تعمیر بنانے کے لیے استعمال کیا جا سکتا ہے، جہاں مختلف ماحول میں تعمیر کو چلانے کے نتیجے میں مکمل طور پر ایک جیسے ایگزیکیوٹیبل ہوتے ہیں۔

میسن 1.1 کی اہم اختراعات:

  • ایک نیا "آبجیکٹ:" دلیل declare_dependency() میں شامل کیا گیا ہے تاکہ اشیاء کو براہ راست executables کے ساتھ اندرونی انحصار کے طور پر منسلک کیا جا سکے جس کے لیے link_who کی ضرورت نہیں ہے۔
  • "meson devenv --dump" کمانڈ میں معیاری آؤٹ پٹ اسٹریم میں آؤٹ پٹ کرنے کے بجائے ماحولیاتی متغیرات کو لکھنے کے لیے فائل کی وضاحت کرنے کی اختیاری صلاحیت ہے۔
  • FeatureOption.enable_if اور FeatureOption.disable_if طریقوں کو شامل کیا گیا تاکہ انحصار () فنکشن میں پیرامیٹرز کو منتقل کرنے کی تیاری میں مشروط بنانا آسان بنایا جا سکے۔ opt = get_option('feature').disable_if(foo نہیں، error_message : 'فیچر کو فعال نہیں کیا جاسکتا جب foo بھی فعال نہ ہو') dep = انحصار ('foo'، مطلوبہ : opt)
  • اسے "آبجیکٹ:" دلائل کے درمیان پیدا شدہ اشیاء کو منتقل کرنے کی اجازت ہے۔
  • پروجیکٹ فنکشن پروجیکٹ لائسنس کے بارے میں معلومات کے ساتھ فائلوں کی تنصیب کی حمایت کرتا ہے۔
  • "sudo meson install" کو عمل میں لانا ٹارگٹ پلیٹ فارمز کے لیے دوبارہ تعمیر کے دوران استحقاق کی دوبارہ ترتیب کو یقینی بناتا ہے۔
  • "میسن انسٹال" کمانڈ روٹ پرمیشن حاصل کرنے کے لیے علیحدہ ہینڈلر کی وضاحت کرنے کی صلاحیت فراہم کرتی ہے (مثال کے طور پر، آپ پولکیٹ، سوڈو، اوپنڈو یا $MESON_ROOT_CMD کو منتخب کر سکتے ہیں)۔ نان انٹرایکٹو موڈ میں "میسن انسٹال" کو چلانے سے مراعات کو بڑھانے کی کوشش نہیں ہوتی ہے۔
  • meson_options.txt کی بجائے meson.options فائل سے پڑھنے کے اختیارات کے لیے تعاون شامل کیا گیا۔
  • خود شناسی کی پیشرفت کے بارے میں معلومات کے آؤٹ پٹ کے stderr کو ری ڈائریکشن فراہم کیا۔
  • ایک نیا "کوئی نہیں" بیک اینڈ (-backend=none) ایسے پروجیکٹس بنانے کے لیے شامل کیا گیا ہے جن میں صرف رولز انسٹال ہیں اور کوئی بلڈ رولز نہیں ہیں۔
  • انحصار ('pybind11') کو pkg-config اور cmake کے ساتھ pybind11-config اسکرپٹ استعمال کیے بغیر کام کرنے کے لیے ایک نیا انحصار pybind11 شامل کیا گیا ہے۔
  • "--reconfigure" اور "--wipe" کے اختیارات (meson setup --reconfigure builddir اور meson setup --wipe builddir ) کو خالی builddir کے ساتھ اجازت ہے۔
  • meson.add_install_script() نے dry_run کلیدی لفظ کے لیے تعاون شامل کیا، جو آپ کو "meson install --dry-run" کال کرتے وقت اپنی انسٹالیشن اسکرپٹ چلانے کی اجازت دیتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں