Rilis sistem perakitan Meson 0.58. Proyek kanggo nggawe implementasine Meson ing basa C

Rilis sistem mbangun Meson 0.58 wis diterbitake, sing digunakake kanggo mbangun proyek kayata X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME lan GTK. Kode Meson ditulis ing Python lan dilisensi ing lisensi Apache 2.0.

Sasaran pangembangan utama Meson yaiku nyedhiyakake proses perakitan kacepetan dhuwur sing digabungake kanthi gampang lan gampang digunakake. Tinimbang nggawe, mbangun nggunakake toolkit Ninja minangka standar, nanging backend liyane kayata xcode lan VisualStudio uga bisa digunakake. Sistem iki nduweni handler dependensi multi-platform sing ngidini sampeyan nggunakake Meson kanggo mbangun paket kanggo distribusi. Aturan Majelis disetel ing basa khusus domain sing disederhanakake, bisa diwaca lan bisa dingerteni pangguna (miturut gagasan penulis, pangembang kudu nglampahi minimal wektu nulis aturan).

Kompilasi silang lan mbangun ing Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS lan Windows nggunakake GCC, Clang, Visual Studio lan kompiler liyane didhukung. Sampeyan bisa mbangun proyek ing macem-macem basa program, kalebu C, C ++, Fortran, Java lan Rust. Mode mbangun tambahan didhukung, sing mung komponen sing ana hubungane langsung karo owah-owahan sing digawe wiwit mbangun pungkasan sing dibangun maneh. Meson bisa digunakake kanggo ngasilake mbangun sing bisa diulang, ing ngendi mbangun ing lingkungan sing beda bakal ngasilake eksekusi sing padha.

Inovasi utama Meson 0.58:

  • Π’ языкС Meson Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ встроСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ форматирования строк. ВмСсто Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° format Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вмСсто Β«β€˜A string @0@ to be formatted @1@’.format(n, m)Β» ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сразу Β«f’A string @n@ to be formatted @m@'Β».
  • Π’ строковыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«replaceΒ» для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ подстроки Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«s = s.replace(β€˜aaa’, β€˜bbb’)Β».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция Β«range(start, stop[, step])Β» для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ Β«foreachΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«foreach i : range(15)Β».
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ meson.add_devenv(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ environment() для установки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Π²ΠΎ врСмя использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«meson devenvΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для задания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния с ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ.
  • Для ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«meson devenv -C builddir [<ΠΊΠΎΠΌΠ°Π½Π΄Π°>], Π΄Π°ΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, настроСнном для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· сборочного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π±Π΅Π· установки).
  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«-pipeΒ» ΠΏΡ€ΠΈ запускС всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… компиляторов.
  • Π Π°Π·Ρ€Π΅ΡˆΡ‘Π½ Π²Ρ‹Π·ΠΎΠ² meson.add_dist_script() ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ запуска ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² append() ΠΈ prepend() для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° environment().
  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ error() Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с warning() ΠΈ message()).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«β€”skip-subprojectsΒ» для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ пропуска установки ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Boson, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° созданиС пСрСносимой ΠΈ простой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка сборочных сцСнариСв Meson, написанной Π½Π° языкС Π‘ΠΈ вмСсто Python. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ° находится Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС развития ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ сборки Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Код распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3 (ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Meson Π½Π° Python поставляСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0).

Source: opennet.ru

Add a comment