Π Π΅Π»ΠΈΠ· Π½Π° систСмитС Π·Π° сборка CMake 3.21 ΠΈ Meson 0.59

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° кроссплатформСния ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° сцСнарии Π½Π° CMake 3.21, ΠΊΠΎΠΉΡ‚ΠΎ слуТи ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° Autotools ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ΠΈ Blender. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° CMake Π΅ написан Π½Π° C++ ΠΈ Π΅ разпространСн ΠΏΠΎΠ΄ лицСнзия BSD.

CMake Π΅ извСстСн с прСдоставянСто Π½Π° прост Π΅Π·ΠΈΠΊ Π½Π° сцСнарии, срСдства Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° функционалността Ρ‡Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π±Ρ€ΠΎΠΉ зависимости (Π±Π΅Π· ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ към M4, Perl ΠΈΠ»ΠΈ Python), ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° инструмСнти Π·Π° крос-компилация, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π±ΠΈΠ»Π΄ Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠ° Π³Π°ΠΌΠ° систСми Π·Π° Π±ΠΈΠ»Π΄ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° инструмСнти ctest ΠΈ cpack Π·Π° опрСдСлянС Π½Π° сцСнарии Π·Π° тСстванС ΠΈ сглобяванС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ инструмСнт cmake-gui Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° Π±ΠΈΠ»Π΄.

Основни подобрСния:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ HIP (Heterogeneous-Computing Interface for Portability), Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Π½Π° C++, насочСн към опростяванС Π½Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CUDA прилоТСния Π² прСносим C++ ΠΊΠΎΠ΄.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° сцСнарии Π½Π° Visual Studio 17 2022, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° прСдваритСлния СмисионСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Visual Studio 2022 Preview 1.1.
  • Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° сцСнарии Makefile ΠΈ Ninja са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ свойствата C_LINKER_LAUNCHER ΠΈ CXX_LINKER_LAUNCHER, с ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° запуск Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ стартират Π»ΠΈΠ½ΠΊΠ΅Ρ€Π°, ΠΊΠ°Ρ‚ΠΎ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ стартира посочСнитС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ, ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΉΠΊΠΈ ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ.
  • ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Π½Π° Π΅ спСцификацията C17 ΠΈ C23 Π² свойствата "C_STANDARD" ΠΈ "OBJC_STANDARD", ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² инструмСнтитС Π·Π° настройка Π½Π° компилаторскитС ΠΎΠΏΡ†ΠΈΠΈ (Compile Features).
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° cmake Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опцията "--toolchain " Π·Π° опрСдСлянС Π½Π° ΠΏΡŠΡ‚Ρ към инструмСнтариума.
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ оцвСтяванС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½ΠΈ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Fujitsu.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "foreach()" Π΅ осигурСна изолация Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π°.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата Π·Π° компилация Meson 0.59, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Meson Π΅ написан Π½Π° Python ΠΈ сС прСдоставя ΠΏΠΎΠ΄ лицСнзия Apache 2.0. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС крос-компилация ΠΈ компилация Π² Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ΠΈ Windows с GCC, Clang, Visual Studio ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½Π° Π΅ компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ C, C++, Fortran, Java ΠΈ Rust. ВмСсто ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° make, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ Ninja, Π½ΠΎ Π΅ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, ΠΊΠ°Ρ‚ΠΎ xcode ΠΈ VisualStudio.

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

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

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Cython (Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Python, насочСн към опростяванС Π½Π° интСграцията с ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° C).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ Β«unescaped_variablesΒ» ΠΈ Β«unescaped_uninstalled_variablesΒ» Π·Π° опрСдСлянС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² pkgconfig Π±Π΅Π· Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ с символа Β«\Β».
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° wrc (Wine Resource Compiler).
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π·Π° Visual Studio 2012 ΠΈ Visual Studio 2013.
  • Всички ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π²Π΅Ρ‡Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ стартират всСки ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. Броят Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈΡ‚Π΅ процСси сС опрСдСля ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Β«β€”num-processesΒ».

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

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