د میسن جوړونې سیسټم خوشې کول 1.3

د Meson 1.3.0 جوړونې سیسټم خپور شوی، کوم چې د پروژې جوړولو لپاره کارول کیږي لکه X.Org سرور، میسا، لایټhttpd، systemd، GStreamer، Wayland، GNOME او GTK. د میسن کوډ په Python کې لیکل شوی او د اپاچي 2.0 جواز لاندې جواز لري.

د میسون کلیدي پراختیا هدف د اسانتیا او کارولو اسانتیا سره یوځای د لوړ سرعت مجلس پروسې چمتو کول دي. د جوړیدو پرځای، جوړونه د ډیفالټ په واسطه د نینجا اوزار کټ کاروي، مګر نور بیکینډونه لکه xcode او VisualStudio هم کارول کیدی شي. سیسټم یو جوړ شوی ملټي پلیټ فارم انحصار هینډلر لري چې تاسو ته اجازه درکوي د توزیع لپاره کڅوړو جوړولو لپاره میسن وکاروئ. د مجلس قواعد په ساده ډومین ځانګړي ژبه کې تنظیم شوي ، دوی د کارونکي لپاره ښه لوستل او د پوهیدو وړ دي (د لیکوالانو د نظر له مخې ، پراختیا کونکی باید لږترلږه وخت د قواعدو لیکلو کې مصرف کړي).

په لینکس، Illumos/Solaris، FreeBSD، NetBSD، DragonFly BSD، Haiku، macOS او وینډوز کې د GCC، کلینګ، ویژول سټوډیو او نورو تالیف کونکو په کارولو سره کراس تالیف کول او جوړول ملاتړ کیږي. دا ممکنه ده چې پروژې په مختلفو پروګرامینګ ژبو کې جوړې کړئ، په شمول د C، C++، Fortran، Java او Rust. د زیاتیدونکي جوړونې حالت ملاتړ کیږي ، په کوم کې چې یوازې هغه برخې چې د وروستي جوړیدو راهیسې رامینځته شوي بدلونونو سره مستقیم تړاو لري بیا رغول کیږي. میسن د تکرار وړ جوړونو رامینځته کولو لپاره کارول کیدی شي ، چیرې چې په مختلف چاپیریالونو کې د جوړونې چلولو پایله په بشپړ ډول ورته اجرا کونکي تولید کیږي.

د میسون 1.3 اصلي نوښتونه:

  • د کمپیلر چک میتودونو ته د "غلطۍ: ریښتیا" اختیار اضافه کړ compiler.compiles()، compiler.links() او compiler.run()، کوم چې د کمپیلر اخطارونو سره د غلطیو په توګه چلند کوي (د دې لپاره کارول کیدی شي چې وګوري کوډ پرته له اخطارونو جوړ شوی دی. ).
  • د پری پروسیسر لخوا د سمبول تعریف چیک کولو لپاره has_define میتود اضافه شوی.
  • د میکرو_نوم پیرامیټر د configure_file() فنکشن کې اضافه شوی ، د "# شامل" ("ساتونکي شامل کړئ") له لارې د دوه اړخیزو اړیکو لپاره د میکرو محافظت اضافه کوي ، په C ژبه کې د میکرو په سټایل کې ډیزاین شوی (د متحرک فایلونو رامینځته کول ساده کول. میکرو نومونه).
  • په configure_file() - JSON ("output_format: json") کې د نوي محصول بڼه اضافه شوې.
  • د c_std او cpp_std پیرامیټونو ته د ارزښتونو لیست کارولو وړتیا اضافه کړه (د مثال په توګه ، "default_options: 'c_std=gnu11,c11′').
  • په ماډلونو کې چې د فایلونو پروسس کولو لپاره CustomTarget کاروي، د نینجا یوټیلیټ لخوا د پیغامونو محصول دودیز کولو وړتیا اضافه شوې.
  • د build_target "jar" له مینځه وړل شوی او پرځای یې د "jar()" کال سپارښتنه کیږي.
  • د 'env' پیرامیټر د generator.process() میتود کې اضافه شوی ترڅو د چاپیریال متغیر تنظیم کړي چې له لارې به جنریټر ان پټ پروسس کوي.
  • کله چې د اجرا وړ سره تړلي هدف نومونه مشخص کړئ، لاحقې لکه "اجرايي وړ('foo', 'main.c', name_suffix: 'bar')" ته اجازه ورکول کیږي چې په ورته لارښود کې اضافي اجرایوي وړونه رامینځته کړي.
  • د def فایل کارولو لپاره د اجرا وړ () فنکشن ته د "vs_module_defs" پیرامیټر اضافه کړل چې د شریک شوي_module () ته د سپارل شوي دندو لیست تعریفوي.
  • د فال بیک فرعي پروژې لپاره د ډیفالټ اختیارونو تنظیم کولو لپاره 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" تار تولید کړي.
  • یو نوی هدف اضافه کړ، کلینګ-ټیډی-فکس، کوم چې د "-فکس" بیرغ سره د کلینګ-ټیډی یوټیلیټ چلول مشخص کوي.
  • د اسمبلۍ هدف ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) د ضمیمې (TARGET_SUFFIX) مشخص کولو وړتیا د تالیف کمانډ کې اضافه شوې.
  • د چاپیریال متغیر MESON_PACKAGE_CACHE_DIR د کڅوړې کیچ (فرعي پروژې/پیکج کیچ) ته د لارې د بیرته راګرځولو لپاره اضافه کړه ، د مثال په توګه ، تاسو ته اجازه درکوي په څو پروژو کې شریک کیچ وکاروئ.
  • د دوامداره کیچ پاکولو لپاره د "میسن سیټ اپ --clearcache" کمانډ اضافه شوی.
  • د "اړین" کلیمې لپاره ملاتړ د ټولو "has_*" کمپیلر چک میتودونو کې اضافه شوی ، د مثال په توګه ، د "اصرار(cc.has_function('some_function'))" پرځای تاسو اوس کولی شئ "cc.has_function('some_function') مشخص کړئ. , اړین دی: ریښتیا)".
  • یوه نوې کلیدي کلمه، rust_abi، په شریکه_لائبری ()، static_library()، library()، او shared_module() افعالو کې اضافه شوې، کوم چې باید د رد شوي rust_crate_type پرځای وکارول شي.

سرچینه: opennet.ru

Add a comment