Выпуск сборочной систСмы Meson 1.11.0

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· сборочной систСмы Meson 1.11.0, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сборки Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK. Код Meson написан Π½Π° языкС Python ΠΈ поставляСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ развития Meson являСтся обСспСчСниС высокой скорости сборочного процСсса Π² сочСтании с удобством ΠΈ простотой использования. ВмСсто ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ make ΠΏΡ€ΠΈ сборкС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ примСняСтся инструмСнтарий Ninja, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… бэкСндов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Xcode ΠΈ Visual Studio. Π’ систСму встроСн ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ зависимостСй, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Meson для сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для дистрибутивов. ΠŸΡ€Π°Π²ΠΈΠ»Π° сборки Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ понятны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (ΠΏΠΎ Π·Π°Π΄ΡƒΠΌΠΊΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° написаниС ΠΏΡ€Π°Π²ΠΈΠ»).

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Meson 1.11:

  • ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π² скриптах Meson ΠΌΠ΅Ρ‚ΠΎΠ΄Π° rust.workspace() Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π°Π·Π±ΠΎΡ€ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Cargo.toml Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ сборкС feature-Ρ„Π»Π°Π³ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π² ΠΎΠ±Ρ‰Π΅ΠΌ для всСх Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… пространств Ρ„Π°ΠΉΠ»Π΅ Cargo.toml. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ rust.workspace() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список feature-Ρ„Π»Π°Π³ΠΎΠ² ΠΈ зависимостСй для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сборку Ρ†Π΅Π»Π΅ΠΉ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π°Ρ… Cargo.toml.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«meson distΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ опция Β«-jΒ» (β€”num-processes) ΠΈ пСрСмСнная окруТСния MESON_NUM_PROCESSES для задания числа процСссов, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ выполняСмых ΠΏΡ€ΠΈ сборкС ΠΈ тСстировании ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ should_fail, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ тСста ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ошибки, объявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² expected_fail. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ expected_exitcode для выставлСния ΠΊΠΎΠ΄Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ тСста, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ 0.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ external_project Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows задСйствована ΠΊΠΎΠΌΠ°Π½Π΄Π° cygpath для прСобразования спСцифичных для Windows Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· C:/path/to/configure Π² /path/to/configure).
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ install_man ΠΈ install_headers Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° install_tag для Π²Ρ‹Π±ΠΎΡ€Π° устанавливаСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚Π΅Π³Π°ΠΌ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Π΅Π³Π°ΠΌ man ΠΈ devel.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ link_early_args, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΏΡ€ΠΈ запускС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«-uΒ» ΠΈΠ»ΠΈ Β«β€”defsymΒ») Π΄ΠΎ пСрСчислСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° константа Β«~Β», замСняСмая Π½Π° домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Ρ„Π°ΠΉΠ»Π°Ρ… описания срСды (machine files).
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«meson formatΒ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° сортировка Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² числС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ files(). Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сортировки слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ sort_files.
  • Анонсировано ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ вСрсий Python Π΄ΠΎ выпуска 3.10. Meson 1.11.0 являСтся послСдним выпуском с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΎΠΊ Python 3.7, 3.8 ΠΈ 3.9.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй C/C++ компилятора MPLAB XC32, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² вСрсии 5.0, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ автоматичСскоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LTO-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° стандартов C2x ΠΈ CPP23.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ