Bazel Π³ΠΎ Π³ΡΠ°Π΄ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ ΠΎΠ΄ ΠΏΠΎΡΠ΅ΡΠΎΠΊ Π·Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Google, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠΎΠΈ ΡΠΎΠ΄ΡΠΆΠ°Ρ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ, Π±Π°ΡΠ°Π°Ρ ΠΎΠΏΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΈ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄ Π²ΠΎ Java, C++, Objective-C, Python, Rust, Go ΠΈ ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΠΈΡΠΈ, ΠΊΠ°ΠΊΠΎ ΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° Android ΠΈ iOS. ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΠΌΠΎΠ½ΡΠ°ΠΆΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ; Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄Π½Π° ΠΌΠΎΠ½ΡΠ°ΠΆΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΈ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ ΡΡΠ΅Π΄.
ΠΠ΅ΡΡ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Bazel ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠ°ΡΠ° Π±ΡΠ·ΠΈΠ½Π°, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΠ° ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ»ΠΈΠ²ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅. ΠΠ° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π³ΠΎΠ»Π΅ΠΌΠ° Π±ΡΠ·ΠΈΠ½Π° Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅, Bazel Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅. BUILD-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΌΠΎΡΠ° ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π°Ρ ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΈ ΡΠ΅ Π΄ΠΎΠ½Π΅ΡΡΠ²Π°Π°Ρ ΠΎΠ΄Π»ΡΠΊΠΈ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ (ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ) ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅. ΠΠ»Π°ΡΠΊΠ°ΡΠ°, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ»ΠΈΠ²ΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅, Ρ.Π΅. ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΠΎΠ΄ ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΡΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ Make ΠΈ Ninja, Bazel ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π½Π° ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅, Π²ΠΎ ΠΊΠΎΠΈ, Π½Π°ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π²ΡΠ·ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ Π³ΡΠ°Π΄Π°Ρ, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠΎΠ°ΠΏΡΡΡΠ°ΠΊΡΠ½ΠΈ Π³ΠΎΡΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ βΠ³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π²ΠΎ C++β, βΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΎ C++β ΠΈΠ»ΠΈ βΠ²ΠΎΠ΄Π΅ΡΠ΅ ΡΠ΅ΡΡ Π·Π° C++β, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΈ Π³ΡΠ°Π΄Π΅ΠΆΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΠΎ ΡΠ΅ΠΊΡΡΡΠ°Π»Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° BUILD, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΠΊΡΠΏ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ·Π²ΡΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ, Π±Π΅Π· Π΄Π΅ΡΠ°Π»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru