Meson build sistēmas laidiens 0.51

publicēts veidot sistēmas izlaidumu Mezons 0.51, ko izmanto, lai izveidotu tādus projektus kā X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME un GTK+. Meson kods ir rakstīts Python un piegādāts licencēts saskaņā ar Apache 2.0.

Meson izstrādes galvenais mērķis ir nodrošināt lielu montāžas procesa ātrumu apvienojumā ar ērtībām un lietošanas vienkāršību. Utilīta make vietā noklusējuma būvējums izmanto rīkkopu ninja, taču ir iespējams izmantot arī citas aizmugursistēmas, piemēram, xcode un VisualStudio. Sistēmai ir iebūvēts vairāku platformu atkarības apstrādātājs, kas ļauj izmantot Meson, lai izveidotu pakotnes izplatīšanai. Montāžas noteikumi ir norādīti vienkāršotā domēna valodā, ir viegli lasāmi un lietotājam saprotami (kā to ir iecerējuši autori, izstrādātājam ir jāpavada minimāls laiks noteikumu rakstīšanai).

Tiek atbalstīta savstarpēja kompilēšana un veidošana uz Linux, macOS un Windows, izmantojot GCC, Clang, Visual Studio un citus kompilatorus. Ir iespējams veidot projektus dažādās programmēšanas valodās, tostarp C, C++, Fortran, Java un Rust. Tiek atbalstīts pakāpenisks veidošanas režīms, kurā tiek pārbūvēti tikai tie komponenti, kas ir tieši saistīti ar izmaiņām, kas veiktas kopš pēdējās būvēšanas. Meson var izmantot, lai ģenerētu atkārtojamus būvējumus, kuros, palaižot būvējumu dažādās vidēs, tiek ģenerēti pilnīgi identiski izpildāmie faili.

Galvenais jauninājumiem Mezons 0.51:

  • Pievienots atbalsts caurspīdīgai esošo projektu veidošanai, kas izmanto CMake build skriptus. Tagad Meson var tieši veidot vienkāršus apakšprojektus (piemēram, atsevišķas bibliotēkas), izmantojot CMake moduli, līdzīgi kā standarta apakšprojektiem (tostarp CMake apakšprojektus var ievietot apakšprojektu direktorijā);
  • Visiem izmantotajiem kompilatoriem ir iekļauta iepriekšēja pārbaude, montējot un izpildot vienkāršus testa failus (saprāta pārbaude), ne tikai pārbaudot lietotāja norādītos karogus krusteniskiem kompilatoriem (no šī brīža tiek pārbaudīti arī pašreizējās platformas kompilatori). .
  • Pievienota iespēja definēt komandrindas opcijas, kas tiek izmantotas savstarpējās kompilācijas laikā, ar saistīšanu, pirms opcijas norādot platformas prefiksu. Iepriekš komandrindas opcijas aptvēra tikai vietējās versijas, un tās nevarēja norādīt savstarpējai kompilācijai. Komandrindas opcijas tagad tiek izmantotas neatkarīgi no tā, vai veidojat vietēji vai savstarpēji kompilējot, nodrošinot, ka vietējās un krusteniskās versijas rada identiskus rezultātus;
  • Pievienota iespēja komandrindā vairāk nekā vienu reizi norādīt karogu “--cross-file”, lai uzskaitītu vairākus šķērsfailus;
  • Pievienots atbalsts ICL kompilatoram (Intel C/C++ Compiler) Windows platformai (ICL.EXE un ifort);
  • Pievienots sākotnējā rīkkopas atbalsts CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Objektam “dependency” ir pievienota metode “get_variable”, kas ļauj iegūt mainīgā vērtību, neņemot vērā pašreizējās atkarības veidu (piemēram, dep.get_variable(pkg-config : 'var- nosaukums', cmake : 'COP_VAR_NAME));
  • Pievienots jauns mērķa montāžas opciju arguments "link_language", lai skaidri norādītu valodu, kas tiek izmantota, izsaucot saiti. Piemēram, galvenā Fortran programma varētu izsaukt C/C++ kodu, kas automātiski izvēlētos C/C++, kad būtu jāizmanto Fortran linkeris;
  • Ir mainīta CPPFLAGS priekšprocesora karogu apstrāde. Tā kā Meson iepriekš atsevišķi glabāja CPPFLAGS un valodu specifiskos kompilācijas karogus (CFLAGS, CXXFLAGS), tagad tie tiek apstrādāti nedalāmi un CPPFLAGS uzskaitītie karodziņi tiek izmantoti kā vēl viens kompilācijas karogu avots valodām, kuras tos atbalsta;
  • Custom_target un custom_target[i] izvadi tagad var izmantot kā argumentus saite_with un link_whole operācijās;
  • Ģeneratoriem tagad ir iespēja norādīt papildu atkarības, izmantojot opciju “depends” (piemēram, generator(program_runner, output: ['@)[e-pasts aizsargāts]'], atkarīgs: exe));
  • Pievienota statiska opcija find_library, lai ļautu meklēšanā iekļaut tikai statiski saistītas bibliotēkas;
  • Vietnei python.find_installation ir pievienota iespēja noteikt konkrēta Python moduļa klātbūtni konkrētai Python versijai;
  • Pievienots jauns modulis unstable-kconfig kconfig failu parsēšanai;
  • Pievienota jauna komanda “subprojects foreach”, kas paņem komandu ar argumentiem un izpilda to visos apakšprojektu direktorijos;

Avots: opennet.ru

Pievieno komentāru