Ukukhutshwa kwenkqubo yokwakhiwa kweMeson 1.0

Inkqubo yokwakha ye-Meson 1.0.0 ikhutshwe, esetyenziselwa ukwakha iiprojekthi ezifana ne-X.Org Server, i-Mesa, i-Lighttpd, i-systemd, i-GStreamer, i-Wayland, i-GNOME kunye ne-GTK. Ikhowudi ye-Meson ibhalwe kwi-Python kwaye ilayisenisi phantsi kwelayisensi ye-Apache 2.0.

Injongo ephambili yophuhliso lweMeson kukubonelela ngesantya esiphezulu senkqubo yendibano edityaniswe ngokulula kunye nokusebenziseka ngokulula. Endaweni yokwenza into eluncedo, i-Ninja toolkit isetyenziswa ngokungagqibekanga xa kusakhiwa, kodwa ezinye izinto ezingasemva ezifana ne-xcode kunye ne-VisualStudio nazo zingasetyenziswa. Inkqubo inendawo eyakhelwe-ngaphakathi yokuxhomekeka kwiplatform evumela ukuba usebenzise iMeson ukwakha iipakethe zokusasazwa. Imithetho yeNdibano ichazwe kulwimi olulula lwe-domain-specific, ifundeka kakhulu kwaye iyaqondakala kumsebenzisi (njengoko kuhloswe ngababhali, umphuhlisi kufuneka achithe ubuncinci bexesha lokubhala imithetho).

Ixhasa ukuhlanganiswa kunye nokwakhiwa kwe-cross kwi-Linux, i-Illumos / i-Solaris, i-FreeBSD, i-NetBSD, i-DragonFly BSD, i-Haiku, i-macOS kunye ne-Windows usebenzisa i-GCC, i-Clang, i-Visual Studio kunye nabanye abaqulunqi. Kunokwenzeka ukwakha iiprojekthi kwiilwimi ezahlukeneyo zokucwangcisa, kuquka iC, C ++, Fortran, Java kunye neRust. Imowudi yokwakha eyongeziweyo iyaxhaswa, apho kuphela amacandelo anxulumene ngokuthe ngqo notshintsho olwenziweyo ukusukela kulwakhiwo lokugqibela lwakhiwa ngokutsha. I-Meson inokusetyenziselwa ukuvelisa ulwakhiwo oluphinda-phindayo, apho ukusebenza kolwakhiwo kwiindawo ezahlukeneyo kubangela ukuveliswa kweefayile ezifanayo ngokupheleleyo.

Iinguqulelo eziphambili zeMeson 1.0:

  • ОбъявлСн ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° языкС Rust. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Mesa для сборки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², написанных Π½Π° Rust.
  • Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ prefix, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ компилятора, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов ΠΏΠΎΠΌΠΈΠΌΠΎ строк. НапримСр, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ: cc.check_header(β€˜GL/wglew.h’, prefix : [β€˜#include <windows.h>’, β€˜#include <GL/glew.h>’])
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Β«β€”workdirΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. НапримСр, для использования Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° вмСсто Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ: meson devenv -C builddir β€”workdir .
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Β«inΒ» ΠΈ Β«not inΒ» для опрСдСлСния вхоТдСния Π² строку подстроки ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ€Π°Π½Π΅Π΅ доступной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ вхоТдСния элСмСнта Π² массив ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. НапримСр: fs = import(β€˜fs’) if β€˜something’ in fs.read(β€˜somefile’) # True endif
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«warning-level=everythingΒ», Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π²Ρ‹Π²ΠΎΠ΄ всСх ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ компилятора (Π² clang ΠΈ MSVC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ -Weverything ΠΈ /Wall, Π° Π² GCC Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ прСдупрСТдСния, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡƒ -Weverything Π²clang).
  • Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ rust.bindgen Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Β«dependenciesΒ» для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ зависимостям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ компилятором.
  • ОбъявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ функция java.generate_native_headers, которая ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² java.native_headers для соотвСтствия ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ наимСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, принятому Π² Meson.

umthombo: opennet.ru

Yongeza izimvo