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

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· сборочной систСмы Meson 1.4.0, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сборки Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ 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 1.4:

  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fs.name, fs.parent, fs.replace_suffix ΠΈ fs.stem модуля FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сборочных Ρ†Π΅Π»Π΅ΠΉ build_tgt ΠΈ custom_tgt, Π° Ρ‚Π°ΠΊΠΆΠ΅ индСкса сборочных Ρ†Π΅Π»Π΅ΠΉ (custom_idx).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π±Π°Π·Π΅ CMake.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ assert-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (GLIBCXX_ASSERTIONS) Π² C++ stdlib Ρ‡Π΅Ρ€Π΅Π· настройку ndebug.
  • Π’ stldebug Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Clang (ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ debugstl Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выставляСтся «-D_GLIBCXX_DEBUG=1» ΠΈ «-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG»).
  • Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ env Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ unset().
  • Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ File Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ full_path() для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° указания собствСнных зависимостСй для numpy (dependency(‘numpy’)).
  • Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ compiler.preprocess() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «depends», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΡΠ±ΠΎΡ€ΠΎΡ‡Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ для compiler.preprocess().
  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ compile_ui, compile_moc ΠΈ preprocess ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ qt4, qt5 ΠΈ qt6 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ preserve_paths для Π²Ρ‹Π±ΠΎΡ€Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° построСния структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² для записываСмых Ρ„Π°ΠΉΠ»ΠΎΠ² (Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true — «{target private directory}/subdir/one.out», Π° Ссли false — «{target private directory}/one.out»).
  • Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ привязок bindgen обСспСчСно использованиС эвристики Meson для опрСдСлСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² C++.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСопрСдСлСния настроСк языка для bindgen (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .h ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для C++).
  • Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ послС ошибок, выявлСнных ΠΏΡ€ΠΈ запускС санитайзСров, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ MemorySanitizer.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° C/C++ компилятора Texas Instruments для сСмСйства CPU C6000.

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