Bazel ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΡΠ΅ΡΡΡ. Π‘Π±ΠΎΡΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Google, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΊΠΎΠ΄ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° Java, C++, Objective-C, Python, Rust, Go ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android ΠΈ iOS. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΡΠ±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Ymhlith nodweddion nodedig Bazel mae cyflymder uchel, dibynadwyedd ac ailadroddadwyedd y broses ymgynnull. Er mwyn cyflawni cyflymder adeiladu uchel, mae Bazel yn defnyddio technegau caching a parallelization ar gyfer y broses adeiladu. Rhaid i ffeiliau ADEILADU ddiffinio'r holl ddibyniaethau yn llawn, ar sail y penderfyniadau a wneir i ailadeiladu cydrannau ar Γ΄l i newidiadau gael eu gwneud (dim ond ffeiliau wedi'u newid sy'n cael eu hailadeiladu) a chyfochrog Γ’'r broses gydosod. Mae offeru hefyd yn sicrhau cydosod y gellir ei ailadrodd, h.y. bydd canlyniad adeiladu prosiect ar beiriant y datblygwr yn hollol union yr un fath Γ’'r adeiladu ar systemau trydydd parti, megis gweinyddwyr integreiddio parhaus.
Yn wahanol i Make a Ninja, mae Bazel yn defnyddio dull lefel uwch o adeiladu rheolau cydosod, lle, yn lle diffinio rhwymiad gorchmynion i'r ffeiliau sy'n cael eu hadeiladu, defnyddir blociau parod mwy haniaethol, megis βadeiladu ffeil gweithredadwy yn C++β, βadeiladu llyfrgell yn C++β neu βrhedeg prawf ar gyfer C++β, yn ogystal Γ’ nodi llwyfannau targed ac adeiladu. Yn ffeil testun BUILD, disgrifir cydrannau'r prosiect fel criw o lyfrgelloedd, ffeiliau gweithredadwy a phrofion, heb fanylu ar lefel ffeiliau unigol a gorchmynion galwadau casglwr. Gweithredir ymarferoldeb ychwanegol trwy'r mecanwaith ar gyfer cysylltu estyniadau.
Ffynhonnell: opennet.ru