Meson бүтээх системийн хувилбар 0.51

Нийтэлсэн системийн хувилбарыг бүтээх Мезон 0.51, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME болон GTK+ зэрэг төслүүдийг бүтээхэд ашигладаг. Месон код нь Python дээр бичигдсэн ба нийлүүлсэн Apache 2.0 дагуу лицензтэй.

Месон хөгжүүлэлтийн гол зорилго нь угсрах үйл явцын өндөр хурдыг тав тухтай, ашиглахад хялбар болгох явдал юм. Make utility-ийн оронд анхдагч бүтэц нь багаж хэрэгслийг ашигладаг Ninja, гэхдээ xcode болон VisualStudio гэх мэт бусад backends ашиглах боломжтой. Энэхүү систем нь олон платформын хамаарлын зохицуулагчтай бөгөөд Meson-ыг ашиглан түгээлтийн багцуудыг бүтээх боломжийг олгодог. Ассемблей дүрмүүд нь хялбаршуулсан домэйны хэлээр тодорхойлогддог бөгөөд хэрэглэгчдэд маш их уншигдахуйц, ойлгомжтой байдаг (зохиогчийн санаачилгаар хөгжүүлэгч нь дүрэм бичихэд хамгийн бага цаг зарцуулах ёстой).

GCC, Clang, Visual Studio болон бусад хөрвүүлэгчийг ашиглан Linux, macOS болон Windows дээр хөндлөн эмхэтгэл хийх, бүтээхийг дэмждэг. C, C++, Fortran, Java, Rust гэх мэт янз бүрийн програмчлалын хэлээр төсөл бүтээх боломжтой. Зөвхөн сүүлийн бүтээцээс хойш хийсэн өөрчлөлттэй шууд холбоотой бүрэлдэхүүн хэсгүүдийг дахин бүтээдэг нэмэлт бүтээх горимыг дэмждэг. Месон нь давтагдах боломжтой бүтээцүүдийг үүсгэхэд ашиглагдаж болох бөгөөд уг бүтээцийг өөр өөр орчинд ажиллуулах нь бүрэн ижил гүйцэтгэх боломжтой файлуудыг үүсгэхэд хүргэдэг.

Үндсэн инноваци Мезон 0.51:

  • CMake бүтээх скрипт ашигладаг одоо байгаа төслүүдийг ил тод болгох дэмжлэг нэмэгдсэн. Месон одоо стандарт дэд төслүүдтэй төстэй (CMake дэд төслүүдийг дэд төслүүдийн лавлах хэсэгт байрлуулж болно) CMake модулийг ашиглан энгийн дэд төслүүдийг (нэг номын сан гэх мэт) шууд бүтээх боломжтой;
  • Ашигласан бүх хөрвүүлэгчийн хувьд энгийн тестийн файлуудыг угсарч, гүйцэтгэх замаар урьдчилсан туршилтыг багтаасан болно (эрүүл мэндийн шалгалт), зөвхөн хөндлөн хөрвүүлэгчдийн хэрэглэгчийн зааж өгсөн тугуудыг туршихаар хязгаарлагдахгүй (одооноос эхлэн одоогийн платформ дээрх хөрвүүлэгчийг мөн шалгаж байна) .
  • Опционы өмнө платформ угтварыг зааж өгөх замаар хөндлөн эмхэтгэлийн үед хэрэглэгдэх командын мөрийн сонголтуудыг тодорхойлох чадварыг нэмсэн. Өмнө нь командын мөрийн сонголтууд нь зөвхөн эх хувилбаруудыг хамарсан бөгөөд хөндлөн эмхэтгэлд зориулж зааж өгөх боломжгүй байсан. Тушаалын мөрийн сонголтууд нь одоо та эх хэлбэрээр бүтээж байгаа эсвэл хөндлөн хөрвүүлсэн эсэхээс үл хамааран хэрэгжиж, эх болон хөндлөн бүтээх нь ижил үр дүнг гаргах болно;
  • Олон кросс файлуудыг жагсаахын тулд тушаалын мөрөнд "--cross-file" тугийг нэгээс олон удаа зааж өгөх боломжийг нэмсэн;
  • Windows платформ (ICL.EXE болон ifort)-д зориулсан ICL хөрвүүлэгчийн (Intel C/C++ Compiler) нэмэлт дэмжлэг;
  • CPU Xtensa (xt-xcc, xt-xc++, xt-nm)-ийн анхны хэрэгслийн дэмжлэгийг нэмсэн;
  • "Dependency" объектод "get_variable" аргыг нэмсэн бөгөөд энэ нь одоогийн хамаарлын төрлийг харгалзахгүйгээр хувьсагчийн утгыг авах боломжийг олгодог (жишээлбэл, dep.get_variable(pkg-config: 'var-) нэр', cmake : 'COP_VAR_NAME));
  • Холбогчийг дуудахдаа ашигласан хэлийг тодорхой зааж өгөхийн тулд "холбоос_хэл" гэсэн шинэ зорилтот угсралтын сонголтуудын аргументыг нэмсэн. Жишээлбэл, Fortran-ийн үндсэн програм C/C++ кодыг дуудаж болох бөгөөд энэ нь Fortran холбогчийг ашиглах үед автоматаар C/C++-г сонгоно;
  • CPPFLAGS препроцессорын тугуудын зохицуулалт өөрчлөгдсөн. Месон өмнө нь CPPFLAGS болон хэлний тусгай эмхэтгэлийн тугуудыг (CFLAGS, CXXFLAGS) тусад нь хадгалдаг байсан бол одоо тэдгээрийг салшгүй боловсруулж, CPPFLAGS-д жагсаасан тугуудыг тэдгээрийг дэмждэг хэлнүүдийн эмхэтгэлийн тугуудын өөр эх сурвалж болгон ашиглаж байна;
  • Custom_target болон custom_target[i]-ийн гаралтыг одоо link_with болон link_whole үйлдлүүдэд аргумент болгон ашиглаж болно;
  • Одоо генераторууд "хамаарах" сонголтыг ашиглан нэмэлт хамаарлыг тодорхойлох боломжтой болсон (жишээ нь, генератор(program_runner, гаралт: [‘@)[имэйлээр хамгаалагдсан]'], хамаарна: exe));
  • Хайлтанд зөвхөн статик холбоос бүхий сангуудыг оруулахыг зөвшөөрөхийн тулд find_library-д статик сонголтыг нэмсэн;
  • python.find_installation-д Python-ийн тодорхой хувилбарт өгөгдсөн Python модуль байгаа эсэхийг тодорхойлох чадварыг нэмсэн;
  • kconfig файлуудыг задлан шинжлэхэд unstable-kconfig шинэ модуль нэмсэн;
  • Аргументтай командыг авч, бүх дэд төслийн лавлах хэсэгт ажиллуулдаг "subprojects foreach" шинэ командыг нэмсэн;

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх