ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Meson 1.3.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.3:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° βwerror: trueβ ΠΊΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° compiler.compiles(), compiler.links() ΠΈ compiler.run(), ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ΡΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΊΠ°ΡΠΎ Π³ΡΠ΅ΡΠΊΠΈ (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ ΠΊΠΎΠ΄ΡΡ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ).
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ has_define Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΡΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ macro_name Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° configure_file(), Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ ΠΌΠ°ΠΊΡΠΎΠ·Π°ΡΠΈΡΠ° Π·Π° Π΄Π²ΠΎΠΉΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΡΡΠ΅Π· β#includeβ (βinclude guardsβ), ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π² ΡΡΠΈΠ»Π° Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠΈΡΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° C (ΠΎΠΏΡΠΎΡΡΡΠ²Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠΈ).
- ΠΠΎΠ² ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΡΠΎΡΠΌΠ°Ρ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ configure_file() - JSON ("output_format: json").
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΡΠΈ ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ c_std ΠΈ cpp_std (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βdefault_options: 'c_std=gnu11,c11β²β).
- Π ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ CustomTarget Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½ΠΈ ΠΎΡ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ninja.
- "jar" build_target Π΅ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ "jar()".
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ βenvβ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° generator.process(), Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΡΡΠ΅Π· ΠΊΠΎΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡΡ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²Ρ ΠΎΠ΄Π°.
- ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠΊΠ°Π·Π²Π°Ρ ΡΠ΅Π»Π΅Π²ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΡΡΠΈΠΊΡΠΈ ΠΊΠ°ΡΠΎ "executable('foo', 'main.c', name_suffix: 'bar')" ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ βvs_module_defsβ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° execuable(), Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° def ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΠΏΠΈΡΡΠΊΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° shared_module().
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ 'default_options' ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° find_program() Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ fs.relative_to(), ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΈΡ ΠΏΡΡ Π·Π° ΠΏΡΡΠ²ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠΏΡΡΠΌΠΎ Π²ΡΠΎΡΠΈΡ, Π°ΠΊΠΎ ΠΏΡΡΠ²ΠΈΡΡ ΠΏΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
- Π‘Π»Π΅Π΄Π½ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ_symlinks Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ install_data(), install_headers() ΠΈ install_subdir(); ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½, ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ.
- ΠΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° int.to_string() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ βfillβ Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·Π° Ρ Π²ΠΎΠ΄Π΅ΡΠΈ Π½ΡΠ»ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° message(n.to_string(fill: 3)) Π·Π° n=4 ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ Π½ΠΈΠ·Π° "004".
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π», clang-tidy-fix, ΠΊΠΎΡΡΠΎ ΡΠΊΠ°Π·Π²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° clang-tidy Ρ ΡΠ»Π°Π³Π° "-fix".
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΠΊΡΠ° (TARGET_SUFFIX) Π½Π° ΡΠ΅Π»ΡΠ° Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° MESON_PACKAGE_CACHE_DIR Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΏΡΡΡ ΠΊΡΠΌ ΠΊΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΈ/packagecache), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΠΊΠ΅Ρ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° "meson setup --clearcache" Π·Π° ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈΡ ΠΊΠ΅Ρ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° βrequiredβ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ βhas_*β, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΌΠ΅ΡΡΠΎ βassert(cc.has_function('some_function'))β Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ βcc.has_function('some_function' , Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ: Π²ΡΡΠ½ΠΎ)β.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ°, rust_abi, ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ shared_library(), static_library(), library() ΠΈ shared_module(), ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡ rust_crate_type.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru