Π Π΅Π»ΠΈΠΉΠ· Π½Π° систСма Π·Π° построяванС Meson 0.52

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Ρ€Π΅Π»ΠΈΠ· Π½Π° систСмата Π·Π° компилация Meson 0.52, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK+. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Meson Π΅ написан Π½Π° Python ΠΈ сС прСдоставя сС разпространява ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

ΠšΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Meson Π΅ Π΄Π° осигури висока скорост Π½Π° компилационния процСс Π² ΡΡŠΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ с удобство ΠΈ простота Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ВмСсто ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ make, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ Ninja, Π½ΠΎ Π΅ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, ΠΊΠ°Ρ‚ΠΎ xcode ΠΈ VisualStudio. БистСмата Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° зависимости, позволяващ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Meson Π·Π° компилация Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° дистрибуции. ΠŸΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° компилация сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π½Π° опростСн Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ с Π΄ΠΎΠ±Ρ€Π° чСтимост ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ (спорСд Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ трябва Π΄Π° отдСля ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° написванС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°).

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС кросс-компилация ΠΈ сборка Π² Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ΠΈ Windows с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GCC, Clang, Visual Studio ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½Π° Π΅ сборка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ C, C++, Fortran, Java ΠΈ Rust. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° сборка, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ само ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΎΡ‚ послСдната сборка. Meson ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° повторяСми сборки, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ пусканСто Π½Π° сборка Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° напълно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Основни нововъвСдСния Meson 0.52:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Webassembly с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Emscripten ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€;
  • Π‘ΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΈ Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ Illumos ΠΈ Solaris;
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° сцСнарии Π·Π° интСрнационализация Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° gettext Π² случай Π½Π° ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° инсталиран инструмСнтариум gettext Π² систСмата (ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° i18n Π½Π° систСми Π±Π΅Π· gettext сС извСТдашС Π³Ρ€Π΅ΡˆΠΊΠ°);
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° статични Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. РСшСни са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° дСинсталирани статични Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Ρ‡Π½ΠΈΡ†ΠΈ Π·Π° Π½Π°Π·Π½Π°Ρ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² срСдата. ΠŸΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° environment() сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ Ρ€Π΅Ρ‡Π½ΠΈΠΊ, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π² срСдата са ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ»ΡŽΡ‡/стойност. Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ прСнСсСни Π² environment_object, сякаш са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π° set(). Π Π΅Ρ‡Π½ΠΈΡ†ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° β€ženvβ€œ;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функцията β€žruntarget alias_target(target_name, dep1, …)β€œ, която създава Π½ΠΎΠ²Π° Ρ†Π΅Π» Π·Π° сборка ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ, която ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° с избрания Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° сборка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žninja target_nameβ€œ). Π’Π°Π·ΠΈ Ρ†Π΅Π» Π·Π° сборка Π½Π΅ стартира Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½ΠΎ осигурява сборка Π½Π° всички зависимости;
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° настройка Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π² срСдата PKG_CONFIG_SYSROOT_DIR ΠΏΡ€ΠΈ кросс-компилация ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° настройка sys_root Π² сСкцията β€ž[properties]β€œ;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опцията β€žβ€”gdb-pathβ€œ Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡŠΡ‚Ρ Π΄ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° GDB ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° опцията β€žβ€”gdb testnameβ€œ Π·Π° стартиранС Π½Π° GDB с указания тСстов сцСнарий;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ опрСдСлянС Π½Π° Ρ†Π΅Π»Ρ‚Π° Π·Π° сглобяванС clang-tidy Π·Π° стартиранС Π½Π° Ρ‚ΠΎΠ·ΠΈ linter с всички ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π¦Π΅Π»Ρ‚Π° сС създава ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° clang-tidy Π² систСмата ΠΈ опрСдСлянС Π½Π° Ρ„Π°ΠΉΠ»Π° Β«.clang-tidyΒ» (ΠΈΠ»ΠΈ Β«_clang-tidyΒ») Π² ΠΊΠΎΡ€Π΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° зависимост dependency(β€˜blocks’) Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Clang Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡΡ‚Π° Blocks;
  • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ са прСдставянията Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ€Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ€ΠΈ;
  • Π’ ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ SourceSet Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ all_dependencies() Π² допълнСниС към ΠΌΠ΅Ρ‚ΠΎΠ΄Π° all_sources();
  • Π’ run_project_tests.py сС появи опция Β«β€”onlyΒ» Π·Π° сСлСктивно стартиранС Π½Π° тСстовС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«python run_project_tests.py β€”only fortran python3Β»);
  • Π’ функцията find_program() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ само Π½Π° изискванитС вСрсии Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° (вСрсията сС опрСдСля Ρ‡Ρ€Π΅Π· стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° с опцията Β«β€”versionΒ»);
  • Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° СкспортиранСто Π½Π° символи Π² функцията shared_module() ΠΏΠΎ аналогия с shared_library() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опцията vs_module_defs;
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ са Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° kconfig, ΠΊΠΎΠΉΡ‚ΠΎ сСга ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° configure_file() Π·Π° опрСдСлянС Π½Π° входния Ρ„Π°ΠΉΠ»;
  • Π’ configure_file() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° посочванС Π½Π° няколко Π²Ρ…ΠΎΠ΄Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Β«command:Β»;
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«distΒ» Π·Π° създаванС Π½Π° Π°Ρ€Ρ…ΠΈΠ²ΠΈ Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π² разряда Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ (ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° бСшС ΡΠ²ΡŠΡ€Π·Π°Π½Π° с ninja). Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Β«β€”formatsΒ» Π·Π° опрСдСлянС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ създадСни Π°Ρ€Ρ…ΠΈΠ²ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
    Β«meson dist β€”formats=xztar,zipΒ»).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster