ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° систСми Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ 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 Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅.

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

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Heterogeneous-Computing Interface for Portability (HIP), Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° C++, цСлящ Π΄Π° улСсни ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° CUDA прилоТСния Π² прСносим C++ ΠΊΠΎΠ΄.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° скриптовС Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π·Π° Visual Studio 17 2022, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Visual Studio 2022 Preview 1.1.
  • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° скриптовС Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Makefile ΠΈ Ninja са Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ свойствата C_LINKER_LAUNCHER ΠΈ CXX_LINKER_LAUNCHER, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° стартиранС Π½Π° спомагатСлни ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ стартират Π»ΠΈΠ½ΠΊΠ΅Ρ€Π°, ΠΊΠ°Ρ‚ΠΎ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ стартира посочСнитС ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌ ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ.
  • Π’ свойствата β€žC_STANDARDβ€œ ΠΈ β€žOBJC_STANDARDβ€œ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² инструмСнтитС Π·Π° настройка Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° (Compile Features), Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° спСцификациитС C17 ΠΈ C23.
  • ΠžΠΏΡ†ΠΈΡΡ‚Π° β€žβ€”toolchainβ€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° cmake > Π·Π° опрСдСлянС Π½Π° ΠΏΡŠΡ‚Ρ към инструмСнтариума.
  • Π’ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° 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).
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π·Π° Visual Studio 2012 ΠΈ Visual Studio 2013.
  • Всички ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, сСга ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ всСки ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Броят Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈΡ‚Π΅ процСси сС опрСдСля ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° β€ž--num-processesβ€œ.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€